HuoLe的學習筆記 快速排序

2021-10-19 14:45:24 字數 1309 閱讀 7903

一、快速排序(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。簡單來說,快速排序的思想是這樣的,先選擇乙個數作為基準數,把比它小的都移動到左邊,把比它大的都移動到右邊,然後針對左邊這個子陣列,再選擇乙個基準數,比它小的移到左邊,...