基数排序是如何进行的? 基数排序(radixsort)属于“分配式排序”(distributionsort),又称“桶子法”(bucketsort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些。
基数排序的效率分析 时间效率:设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排序的时间复杂度为O(d(n+radix)),其中,一趟分配时间复杂度为O(n),一趟收集时间复杂度为O(radix),共进行d趟分配和收集。空间效率:需要2*radix个指向队列的辅助空间,以及用于静态链表的n个指针。
什么是基数排序? 请在此输入您的Algorithm Gossip:基数排序法说明在之前所介绍过的排序方法,都是属于“比较性”的排序法,也就是每次排序时,都是比较整个键值的大小以进行排序。这边所要介绍的“基数排序法”(radix sort)则是属于“分配式排序”(distribution sort),基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,借以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。解法基数排序的方式可以采用LSD(Least sgnificant digital)或MSD(Most sgnificant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。以LSD为例,假设原来有一串数值如下所示:73,22,93,43,55,14,28,65,39,81首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:01 812 223 43 93 734 145 65 55678 289 39接下来将这些桶子中的数值重新串接起来,成为以下的数列:81,22,73,93,43,14,55,65,28,39接着再进行一次分配,这次是根据十位数来分配:01 14。