天天看點

常用排序

一、插入排序

每次将一個待排序的資料元素,按照其關鍵字大小插入到前面已排好序的有序序列的适當位置,使插入以後的資料序列仍然為一個有序序列,直到整個序列成為有序序列為止。

1.直接插入排序

插入排序過程需要将待插入的元素和所有的元素進行比較

2.折半插入排序

将待插入資料與目前有序序列中的平分位置的關鍵字資料進行比較,進而确定下一步要确定的子序列,直到找到插入的合适位置。

3.希爾排序

先将整個待排序序列分割成若幹子序列,每個子序列由相關一定長度的資料元素組成(這個相差的長度稱為增量),然後我們分别對這些子序列進行直接插入排序,一輪排序後再取第二個增量,以此類推,需要注意的是,對于希爾排序中增量的确定沒有統一的規定,通常的做法是:第一個增量為待排序序列長度的二分之一(取整),然後逐漸減半(取整),直到等于1為止。

二、交換排序:利用交換資料元素的位置進行排序的方法稱為交換排序

1.冒泡排序

2.選擇排序