织梦做的网站有点慢,wordpress分类目录 插件,专门做家居的网站,旅游公司网站建设ppt将需要排序的各个数当做元素#xff0c;集合组成数组#xff0c;对数组中的元素进行排序#xff0c;再开辟一个临时数组的空间将数组中已有的元素数值当做临时数组的下标储存在临时数组中#xff0c;然后用区别初始化值的方法区别出临时数组中待排数组的元素#xff0c;以…将需要排序的各个数当做元素集合组成数组对数组中的元素进行排序再开辟一个临时数组的空间将数组中已有的元素数值当做临时数组的下标储存在临时数组中然后用区别初始化值的方法区别出临时数组中待排数组的元素以已排好的顺序存储到原始数组中完成排序。这是一种以空间换时间的排序算法时间复杂度为O(n)该算法有局限性①只能排正整数②不能排重复值③空间耗费可能巨大。 //待排数组将需要排序的各个数当做元素集合组成数组66 43 89 98 12 18 15 23 33 50
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
//临时数组将数组中已有的元素数值当做临时数组的下标储存在临时数组中//初始化临时数组初始化的值不是待排数组中的元素的值即可-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
a[0] a[1] ... ... ... ... ... ... a[99] ...//将数组中已有的元素数值当做临时数组的下标储存在临时数组中12 15 18 23 33 43 50 66 89 98
a[12] a[15] a[18] a[23] a[33] a[43] a[50] a[66] a[89] a[98]
//用区别初始化值的方法区别出临时数组中待排数组的元素以已排好的顺序存储到原始数组中完成排序12 15 18 23 33 43 50 66 89 98
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 代码
//基数排序
void radix_sort(int* a, int len, int max){//先准备一个临时数组 max1int* pTemp malloc(sizeof(int)*(max 1));//初始化 -1for (int i 0; i max; i){pTemp[i] -1;}//把待排数组 放到临时数组中来 待排数组作为临时数组下标for (int i 0; i len; i){pTemp[a[i]] a[i];}//从临时数组中把已经排好序的数据放回来int k 0;for (int i 0; i max; i){if (pTemp[i] ! -1){a[k] pTemp[i];}}//释放内存free(pTemp);
}