資料結構之常用排序演算法理解

2021-09-01 20:20:41 字數 918 閱讀 3275

1.選擇排序:

遍歷陣列,每一次遍歷找出乙個最小值放在陣列前面,步驟如下:

將currmin設為a[0],遍歷a[1]->a[n-1],只要a[i]小於a[0],進行a[0]與a[i]的交換

將currmin設為a[1],遍歷a[2]->a[n-1

]最後乙個currmin為a[n-2],比較a[n-2]與a[n-1]

**如下:

for(int i=0; iarr[j]) 

}if(currminindex != i)

}

2.插入排序:

這個演算法可以描述為: 

將a[i]插入到已排號序的子數列中,然後a[0]->a[i]就是有序的

for(int i=1; i=0&&arr[j]>currele; j--)

arr[j+1] = currele

}

3.氣泡排序

遍歷陣列,每一次遍歷後將值最大的元素交換到陣列尾部,關鍵**如下:

for(int out=1; outa[i+1])

}

4.歸併排序

歸併排序通過遞迴實現,思想非常容易理解:

public static void mergesort(int list)	}	

public static int merge(int first, int second)

public static void quicksort(int list, int first, int last)

}

資料結構之排序演算法

1.插入排序 直接插入排序 include void insertsort int unsort int length unsort j temp int main void insertsort num,7 int i 0 for i i 7 i return 0 折半插入排序 include v...

資料結構之排序演算法

學過好久的東西,感覺都忘記的差不多了,雖然可能日常寫 的過程之中也可能寫過一些演算法,但是從來都沒有規整,最近忙裡偷閒,寫點關於排序的演算法,當然好多人都寫過一些很不錯的演算法blog,我寫一下,只是方便自己日後檢視,當然也給有需要的朋友一些參考,歡迎指正 排序演算法有 氣泡排序,選擇排序,插入排序...

資料結構之排序演算法

1 直接插入排序 將乙個記錄插入到已經排好序的有序表中,只有當排序結束時每個元素才能進入到正確的位置,複雜度為o n2 優點 演算法簡單 易行,當待排序記錄數量較少時,該演算法非常有效 缺點 資料規模較大時,效率比較低。演算法insertsort r,n insertsort1.插入排序 for j...