基本排序算法

插入排序(insertionsort)

交换排序(exchangesort)

选择排序(selectionsort)

归并排序(mergesort)

分布排序(distributionsort)

 

基本查找算法

顺序查找(sequential searching)

比较查找(comparison searching)折半查找

基数查找(radix searching)

哈希查找(hashing)

 

快速排序

快速排序是一种分割处理式的排序算法,它将一个复杂的排序问题分解为若干较容易处理的排序问题,然后逐一解决。在快速排序算法中,首先要从数据集的数据中选择一个数据作为分割值,然后将数据分成以下3个子集:

(1) 将大于分割值的数据移到分割值的前面,组成子集1

(2) 将分割值本身为子集2

(3) 将小于分割值的数据移到分割值后面,组成子集3

 

归并排序

归并排序也是一种分割处理式的排序算法。在归并排序算法中,将待排序数据看做是一个链表序列,每个链表中的数据都已经排好序,然后不断的将相邻的链表合并为一些较大的链表,当所有的链表都合并为一个链表时,排序过程也就结束了。归并排序算法特别适合于对键表或其它非数组形式的数据结构进行排序,它还下能对无法放入内存的数据进行排序,或者被作为一种特定的排序算法来使用。

 

基数排序

“基数排序法”(radix sort)则是属于“分配式排序”(distribution sort),基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。

你可能感兴趣的:(基本排序算法)