• 计数排序


    基数排序基本思想:计数排序是一个类似于桶排序的排序算法,其优势是对已知数量范围的数组进行排序。它创建一个长度为这个数据范围的数组C,C中每个元素记录要排序数组中对应记录的出现个数。

    对于上述例子,认为人的身高在100cm--300cm之间,然后建立200个桶(pail),桶中存的是对应元素的个数,即pail[185]=2。当所有的元素都放进桶中后,在按照顺序将桶中元素倒出。

    #include <iostream>
    #include <algorithm>
    #include "string.h"
    #include "stdio.h"
    #include <vector>
    #include <deque>
    #include<stack>
    using namespace std;
    
    class Sort {
    public:
        int* countingSort(int* A, int n) {
            int* pail = new int[1000];//定义1000个桶
            int* result = new int[n];
            int j=0;
            for(int i=0;i<1000;i++)//初始化桶
            {
                pail[i]=0;
            }
            for(int i=0;i<n;i++)
            {
                pail[A[i]]++;
            }
            for(int i=0;i<1000;i++)
            {
                if(pail[i]!=0)
                {
                    for(int k=pail[i];k>0;k--)
                    {
                        result[j++]=i;
                    }
                }
            }
            return result;
        }
    };
    int main()
    {
        int array[]={3,4,5,1,4,8,7};
        Sort sort;
        int len = sizeof(array)/sizeof(array[0]);
        int* arr = sort.countingSort(array,len);
        for(int i=0;i<len;i++)
        {
            cout<<arr[i]<<" ";
        }
        cout<<endl;
        return 0;
    }
  • 相关阅读:
    ios swift 支持cocoaPods
    iOS 国际化
    ios storyboard全解析 (二)
    ios storyboard全解析 (一)
    UML类图的几个关系自我总结,(入门级)
    crypt 病毒
    js思维导向图
    关于索引的使用
    SQL Server 索引结构及其使用
    关于js数组的那些事
  • 原文地址:https://www.cnblogs.com/omelet/p/6600880.html
Copyright © 2020-2023  润新知