排序 之 插入 希爾 選擇

2021-10-03 09:40:40 字數 1039 閱讀 5416

插入排序類似於插入撲克牌

通過一次次遍歷,進行排序

**:

//插入排序

public

static

void insertsort (

int[

] arr)

arr[end +1]

= key;

}}

希爾排序是插入排序的優化,通過隔幾個一排進行優化

//希爾排序

public

static

void shellsort (

int[

] arr)

arr[end + gap]

= key;}}

}

通過製造乙個gap來進行插入排序,多次插入排序,效率比插入排序高

;//如果最大值在起始位置,則經過上面的交換之後,最大值被移動到minidx指向的位置

if(maxidx == begin)

maxidx = minidx;

swap

(arr, end, maxidx)

;++begin;

--end;

}}

插入 希爾 選擇排序

排序 一般是原地排序 in place 排序 預設情況下都是按非降序排序 穩定性 能保證排序過程中相等的資料的相對順序不變 1.插入排序 越接近有序,執行時間效率越高 減治演算法排序 直接插入排序,折半插入排序 一共需要進行size 1次插入 插入過程 每次把無序區間的第乙個數,在有序區間遍歷 從後...

冒泡 選擇 插入 希爾排序

include include include using namespace std template void print const t a,int n 氣泡排序 每次迴圈總是將最大元素移到隊尾 o n 2 穩定的排序演算法 templatevoid bubblesort t a,int n ...

排序演算法一之冒泡 選擇 插入 希爾排序

本文中的前三種排序都是公升序排序,又因為這三個排序的平均時間複雜度都是o n2 最差情況也都是o n2 另外這三種排序也是其他排序如快排 希爾排序的基礎,較少,思想較容易理解,所以放在一塊。對於排序的思想可以參考嚴蔚敏的 資料結構 的書,也可以參考 大話資料結構 或者另外一本 妙趣橫生的演算法 c語...