簡談快速排序演算法 Java

2021-09-03 08:08:46 字數 1112 閱讀 4208

快速排序是常用排序中的一種,其時間複雜度在理想狀態下可以達到o(logn),在一些需要高效處理排序的時候經常用到.

原理是將陣列中第乙個作為基數,然後將剩下的數分成兩個區,左邊的是小於基數值的數,右邊的大於基數值的數.將基準值放中間.然後利用遞迴將分開的兩個區做同樣的操作,直到完成排序

/**

* 快速排序

* @param array 需要排序的陣列

*/public

static

void

quicksort

(int

array)

/** * 開始快排

* @param array 陣列

* @param low 區域範圍的開始(左指標)

* @param high 區域範圍的結束(右指標)

*/private

void

quicksort

(int

array,

int low,

int high)

}/**

* 分割槽操作

* @param array 陣列

* @param low 區域範圍的開始(左指標)

* @param high 區域範圍的結束(右指標)

* @return 基準值位置

*/private

intpartition

(int

array,

int low,

int high)

// 2.將右側找到小於基準書的值加到左邊的(坑)位置,左指標向中間移動乙個位置i++

if(i < j)

// 3.從左向右移動i,找到第乙個大於等於基準值的值array[i]

while

(array[i]

< x && i < j)

// 4.將左側找到的大於等於基準值的值加入到右邊的坑中,右指標向中間移動乙個位置,j--

if(i < j)

}// 使用基準值填坑,這就是基準值的最終文職

array[i]

= x;

// 返回基準值的位置索引

return i;

}

排序演算法第二談 快速排序

把乙個陣列切分成兩個子陣列的基本思想 找乙個基準值,用兩個指標分別指向陣列的頭部和尾部 先從尾部向頭部開始搜尋乙個比基準值小的元素,搜尋到即停止,並記錄指標的位置 再從頭部向尾部開始搜尋乙個比基準值大的元素,搜尋到即停止,並記錄指標的位置 交換當前左邊指標位置和右邊指標位置的元素 重複2,3,4步驟...

Java排序演算法 快速排序

一.思想 對氣泡排序演算法的一種改進。通過一趟排序將排序的資料分割成兩個部分,其中一部分的所有資料都比另一部分的所有資料都要小,然後再按此方法對這兩部分分別再進行快速排序,依次類推。實現為 開始時先設兩個變數i start,j end 以第乙個元素作為中間點,pivot num i 以j 的形式從後...

java排序演算法 快速排序

陣列 2,6,3,6,5,9,1 輸出 1 2 3 5 6 6 9 private static void paixu int arrs,int h,int e while arrs x arrs e 交換值 int m m arrs h arrs h arrs e arrs e m 2,6,3,6...