排序算法之基数排序 | 您所在的位置:网站首页 › word反馈单号从小到大排序怎么排列 › 排序算法之基数排序 |
一、例子演示
现有如下序列:{3,44,38,5,47,15,36,32,50},现在要利用基数排序算法对这9个元素进行从小到大的排序,怎么排呢?
首先,排序的初始化状态如图1所示
图1:初始化状态 第二,将这9个元素按个位分配到相应的位置上,如图2所示 图2:按个位分配后的结果 第三,将第二步分配好的结果按顺序取出,因为是按个位排序的,所以取出来的元素一定是按个位有序的,如图3所示 图3:将元素按顺序取出 第四,将元素按十位放入到相应的位置,上一步的数是按个位有序的,现在按十位放入相应的位置,放入之后,对于每个位置而言,都是大数在上面,小数在下面,如图4所示 图4:将元素按十位放入到相应的位置 第五,因为是从小到大排序,将元素从左往右,从下到上依次取出,如图5所示 图5:最终结果 二、 算法思想 排序算法是一种非比较算法,其原理是将整数按每个位数分别比较。它利用了桶的思想。代码确实不怎么好写,还是需要仔细分析和钻研代码的。 三、代码实现 #include using namespace std; int temp[100]; int bucket[10]; int maxBit(int data[],int n) { //行这些代码在求n个元素的最大值 int maxData = data[0]; for(int i=1;i |
CopyRight 2018-2019 实验室设备网 版权所有 |