Domain, hosting, vps giá rẻ
Kết quả 1 đến 4 của 4

Chủ đề: [C++] Các thuật toán sắp xếp cơ bản thường sử dụng

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    nghiammo1992's Avatar
    Bài viết
    5,075
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    32
    Danh vọng
    10
    Điện thoại
    0367790762
    Thuật toán Counting Sort – Thuật toán sắp xếp đếm phân phối (thuật toán tốt hơn Quick Sort, nhưng tốn bộ nhớ hơn)

    Mã nguồn PHP:
    #include <iostream>


    using namespace std;


    // Function that sort the given input
    void counting_sort(int input[], int n)
    {

        
    int output[n]; // The output will have sorted input array
        
    int max input[0];
        
    int min input[0];

        for(
    int i 1ni++)
        {
            if(
    input[i] > max)
                
    max input[i]; // Maximum value in array
            
    else if(input[i] < min)
                
    min input[i]; // Minimum value in array
        
    }

        
    int k max min 1// Size of count array

        
    int count_array[k]; // Create a count_array to store count of each individual input value
        
    fill_n(count_arrayk0); // Initialize count_array elements as zero

        
    for(int i 0ni++)
            
    count_array[input[i] - min]++; // Store count of each individual input value

        /* Change count_array so that count_array now contains actual
         position of input values in output array */
        
    for(int i 1ki++)
            
    count_array[i] += count_array[1];


        
    // Populate output array using count_array and input array
        
    for(int i 0ni++)
        {
            
    output[count_array[input[i] - min] - 1] = input[i];
            
    count_array[input[i] - min]--;
        }


        for(
    int i 0ni++)
            
    input[i] = output[i]; // Copy the output array to input, so that input now contains sorted values

    }


    int main()
    {

        
    int arr[] {32,71,12,45,26,80,53,33,-7,99,1,5,2,-3,-100};

        
    int n sizeof(arr) / sizeof(arr[0]); // so luong phan tu trong mang

        
    counting_sort(arrn);

        
    cout << "So luong phan tu trong mang: " << << endl;

        for (
    int i arr) {
            
    cout << << " ";
        }

        return 
    0;

    Lần sửa cuối bởi nghiammo1992, ngày 11/09/2021 lúc 2:31.
    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình :X

Thông tin về chủ đề này

Users Browsing this Thread

Có 1 người đang xem chủ đề. (0 thành viên và 1 khách)

Các Chủ đề tương tự

  1. Trả lời: 0
    Bài viết cuối: 21/03/2013, 12:43

Tag của Chủ đề này

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •