理解選擇排序的不穩定性
// 選擇排序
// 氣泡排序
// 插入排序
public
int[
]charusort
(int
intarr)
for(
int i =
1; i < intarr.length; i++)}
}return intarr;
}
// 正確性檢測
@test
public
void
sorttest()
system.out.
println
(arrays.
tostring
(arr));
int[
] copyof = arrays.
copyof
(arr, arr.length)
; arrays.
sort
(copyof)
; system.out.
println
(arrays.
tostring
(copyof));
// 此處引入自定義的排序方法
// 快速排序
#include
intfindpos
(int
* a,
int low,
int high);
void
quicksort
(int
* a,
int low,
int high);
intmain
(void);
int i;
quicksort
(a,0,5
);// 第二個引數表示第乙個元素的下標,第三個引數表示最後乙個元素的下標
for(i =
0;i<6;
++i)
printf
("%d"
,a[i]);
printf
("\n");
return0;
}void
quicksort
(int
* a,
int low,
int high)
}int
findpos
(int
* a,
int low,
int high)
// 終止while迴圈之後,low和high一定是相等的
a[low]
= val;
return low;
// high
}
資料結構1 排序
就算複習再緊張,也要動手實踐資料結構中的基本演算法,徹底理解演算法的本質。不要讓任何理由成為不程式設計的藉口。從快速排序開始,將演算法問題一一攻克。複習提綱 基本資料結構 棧和佇列,陣列和鍊錶 樹和二叉樹 二叉查詢樹 平衡二叉樹 雜湊表 排序演算法 選擇排序 氣泡排序和快速排序 堆和堆排序 計數排序...
資料結構 07 排序
簡單的排序方法 氣泡排序 選擇排序 插入排序 希爾排序。先進的排序方法 歸併排序 快速排序 堆排序 基數排序。1.演算法思想 每次在未排序的元素中兩兩比較找最大值,邊找邊從後往前儲存 未排序.第i大 第2大 第1大 一般情況,整個氣泡排序只需進行 k 1 k氣泡排序結束的條件是 在某一趟排序過程中沒...
資料結構1 排序
關鍵字相同的項排序後順序不變就是穩定的排序演算法,否則是不穩定的排序演算法。排序分為內部排序和外部排序,內部排序只需要訪問記憶體,外部排序還需要訪問外存。1.氣泡排序 穩定排序演算法 很經典簡單的方法,每個數字從最下面開始一層一層往上走,像冒泡泡一樣。冒泡是用兩個巢狀的for迴圈實現的,基本操作 比...