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...