冒泡《選擇《插值《希爾《快速(效率)
/**
* 氣泡排序
*/public
int[
]getintlist
(int
ints)}if
(!true
)else
}return ints;
}/**
* 選擇排序法
* 每次迴圈拿出最小的乙個值放在前面
*/public
int[
]getselectsort
(int
ints)
}//當minindex改變了才進行換位操作
if(minindex != i)
}return ints;
}/**
* 插入排序法
*/public
int[
]getinsertsort
(int
ints)
//1 2 3 4 x 9 7
//_ _ _ _ _ _ _
ints[insertindex+1]
= insertval;
}return ints;
}/**
* 優化希爾排序法
*/public
int[
]gethillsortmax
(int
ints)
ints[j]
= temp;}}
}return ints;
}/**
* 快速排序
*/public
void
getquicksort
(int
ints,
int start,
int end)
//如果高位值 小於初始值 就讓它賦值到低位
//(右邊賦值給左邊)
ints[low]
= ints[hight]
;while
(low<=first)
ints[hight]
= ints[low];}
ints[low]
= first;
//遞迴處理小的數字
getquicksort
(ints,start,low)
;//遞迴處理大的數字
getquicksort
(ints,low+
1,end)
;}
快速排序演算法例項
對關鍵碼序列 66,13,51,76,81,26,57,69,23 進行快速排序。求第一趟劃分後的結果。關鍵碼序列遞增。以第乙個元素為劃分基準。將兩個指標i,j分別指向表的起始和最後的位置。反覆操作以下兩步 1 j逐漸減小,並逐次比較j指向的元素和目標元素的大小,若p j 2 i逐漸增大,並逐次比較...
演算法 選擇排序,例項分析選擇排序演算法
選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...
C用語言排序演算法 希爾排序(例項)
希爾排序 在直接插入排序的思想下設定乙個最小增量dk,剛開始dk設定為n 2。進行插入排序,隨後再讓dk dk 2,再進行插入排序,直到dk為1時完成最後一次插入排序,此時陣列完成排序。include 進行插入排序 初始時從dk開始增長,每次比較步長為dk void insrtsort int a,...