/***
* @氣泡排序
* @bubblesort
* @param arr
*/public
static
void
bubblesort
(int
arr)
for(
int i = arr.length-
1;i>
0;i--)}
}
/***
* @選擇排序
* @selectionsort 兩個指標,乙個遍歷指標,乙個指向當前的最值
* @param arr
*/public
static
void
selectionsort
(int
arr)
for(
int i =
0; i < arr.length -
1; i++
)swap
(arr, i, minindex);}
}
/***
* @插入排序
* @insertionsort
* @param arr
*/public
static
void
insertionsort
(int
arr)
for(
int i =
1; i < arr.length;i++)}
}
/***
* @歸併排序
* @mergesort
* @param arr
*/public
static
void
mergesort
(int
arr)
mergesort
(arr,
0, arr.length -1)
;}public
static
void
mergesort
(int
arr,
int l,
int r)
int mid = l +
((r - l)
>>1)
;mergesort
(arr, l, mid)
;mergesort
(arr, mid +
1, r)
;merge
(arr, l, mid, r);}
//兩個有序陣列 (l-m) (m+1 - r)的合併
public
static
void
merge
(int
arr,
int l,
int m,
int r)
while
(p1 <= m)
while
(p2 <= r)
for(i =
0; i < help.length; i++
)}
/***
* @快速排序 應用:荷蘭國旗問題
* @quicksort
* @param arr
*/public
static
void
quicksort
(int
arr)
quicksort
(arr,
0, arr.length -1)
;}public
static
void
quicksort
(int
arr,
int l,
int r)
}public
static
int[
]partition
(int
arr,
int l,
int r)
else
if(arr[l]
> arr[r]
)else
}swap
(arr, more, r)
;return
newint
;}
/***
* @堆排序
* 1.求大根堆
* 2.交換首尾
* 3.通過heapify下沉首節點
* @heapsort
* @param arr
*/public
static
void
heapsort
(int
arr)
for(
int i =
0; i < arr.length; i++
)int size = arr.length;
swap
(arr,0,
--size)
;while
(size >0)
}public
static
void
heapinsert
(int
arr,
int index)
}public
static
void
heapify
(int
arr,
int index,
int size)
swap
(arr, largest, index)
;//交換最大值
index = largest;
left = index *2+
1;}}
/***
* @公共呼叫方法
* @採用兩次異或交換兩個數
* @swap a,b
* @param arr
* @param i
* @param j
*/public
static
void
swap
(int
arr,
int i,
int j)
基礎演算法3 桶排序和排序演算法總結
比較器 定義乙個比較器函式,如果返回負數,認為第乙個引數應該排在前面,如果返回是正數,認為第二個引數應該排在前面,如果返回0,認為誰放前面無所謂。可用於 基於比較的排序。桶排序思想下的排序 桶排序思想下的排序都不是基於比較的排序 2 時間複雜度為o n 額外空間複雜度為o n 3 應用範圍有限,需要...
三種基礎排序演算法總結
一 氣泡排序 1 演算法思想 1 兩層迴圈,外層迴圈i從0開始,內層迴圈從j i 1開始 2 如果ary i ary j 則交換其值 3 直到外層迴圈到length 1 2 主演算法實現 public static void bubblesort int ary 3 穩定性 int ary algo...
基礎排序總結
o n 2 級別的演算法主要包括 選擇排序,插入排序,冒泡法排序,希爾排序等 選擇排序 選擇排序,將後面未排序陣列中最小的與前面的元素交換 1 template 2 void selectionsort t arr,int n 9 10swap arr i arr minindex 11 12 插入...