一、快速排序(quick sort)
public
class
myquicksort
;myquicksort
(a,0
, a.length-1)
;print
(a);
}/**
* 快速排序
*/public
static
int[
]myquicksort
(int
array,
int left,
int right)
else
if(array.length ==1)
return array;
}/**
* 分割陣列
*/public
static
intpartition
(int
array,
int left,
int right)
/**向右移動找到第乙個大於pivot的數**/
while
(i <= j && array[j]
>= pivot)
/**如果i>j,跳出迴圈**/
if(i > j)
/**交換找到的i,j位置的數**/
swap
(array, i, j);}
/**使中軸元素pivot處於有序的位置**/
swap
(array, left, j)
;return j;
}/**
* 交換陣列元素
*/public
static
void
swap
(int
array,
int i,
int j)
//生成隨機數組
public
static
int[
]randomint
(int size)
return list1;
}//輸出全部資料
public
static
void
print
(int
num)
system.out.
println
(" ");
}}
myquicksort 12
3456
78 process finished with exit code 0
快速排序學習筆記
學習資料出處 白話經典演算法系列之六 快速排序 快速搞定 快速排序採用分治策略,其基本思想 1 從數列中選乙個元素x作為基準數 2 分割槽過程,把不小於x的元素放到x的右邊,小於x的元素放到x的左邊 3 再對左右區間重複進行分割槽操作,直到各區間只有乙個數 morewindows總結的 挖坑填數 分...
學習筆記 快速排序
基本步驟 1 確定分界點x a l a r a l r 1 2 劃分區間 小於x的在一邊,大於x的在另一邊 3 遞迴處理左右兩端 const int n 1e5 5 int n,a n void quick sort int a,int l,int r quick sort a,l,j quick ...
學習筆記 快速排序
將乙個一維陣列從小到大排列。快速排序利用了遞迴的思想。需要三個引數,陣列本身,陣列起始索引也就是0,陣列最右索引,也就是陣列長度 1。簡單來說,快速排序的思想是這樣的,先選擇乙個數作為基準數,把比它小的都移動到左邊,把比它大的都移動到右邊,然後針對左邊這個子陣列,再選擇乙個基準數,比它小的移到左邊,...