• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

排序算法可以分为基于比较的排序线性时间排序(至少遍历所有元素)。

常见的基于比较排序的算法有:冒泡排序、选择排序、插入排序、归并排序、堆排序、快速排序等。(要对数字进行排序,我们需要一个算法来比较两个数字的大小,并确定它们的顺序)

无比较排序:约束和数据条件。例如计数排序、基数排序、桶排序。

基数排序:参见:[算法]排序算法的基数排序-知乎(zhihu.com)

给出代码:

1 #包含位/标准数据。h

2

3使用命名空间std

5 //基本排序

6级半径排序{

8 public:

9 radixSort()=默认值;

10空排序(矢量排列){

11 if (arr.size() 2)返回;

12 //left,right决定排序的范围,也就是左右闭合。

13 Sort(arr,0,arr.size() - 1,maxbits(arr));

14 }

15

16 //返回最大的数有多少位,位数决定了你需要进出桶的次数。每次进桶都会排一位数的单。

17 int maxbits(矢量数组){

18 int mymax=INT _ MIN

19 for(int I=0;I arr . size();i ) {

20 mymax=max(mymax,arr);

21 }

22 int RES=0;

23 while (mymax!=0) {

24 res

25 mymax/=10;

26 }

27个返回结果;

28 }

29

30 //得到一个D位有数的数;

31 int getDigit(int num,int d) {

32返回((num/(int)pow(10,d-1))% 10);

33 }

34

35 void Sort(矢量数组,左整数,右整数,整数){

36 //基数,也就是10;默认情况下传入的数字是十进制数;

37 const int radix=10

38 int I=0;

39 int j=0;

40 //其实没有水桶。辅助空间帮助用于模拟铲斗进入铲斗。

41矢量帮助(左右1,0);

42 for(int d=1;d=数字;d) {

43矢量计数(基数,0);

4//count [0]表示当前位(I)为0的位数;

45 for (i=左;i=对;i ) {

46 j=getDigit(arr,d);

47 count[j];

48 }

49 //将计数数组改为前缀

50 for(I=1;I基数;i ) {

51计数=计数计数[I-1];

52 }

5//从右向左倒出来

54 for (i=右;i=左;我- ) {

55 j=getDigit(arr,d);

56 help[count[j]-1]=arr

57计数[j]-;

58 }

9//将排序后的数组返回arr,准备下一位的排序

60 for (i=左,j=0;i=对;I,j ) {

61 arr=help[j];

62 }

63 }

64 }

65 };

66

67 int main() {

68 radix sort * a=new radix sort();

69矢量nums={200,154,324,90,1,5438 };

70 a排序(nums);

71返回0;

72 }

Link to comment
Share on other sites