快速排序 學習記錄

2021-10-07 04:44:17 字數 532 閱讀 4224

快速排序的基本思想是:

這裡將第乙個位置作為切分點,因此還需要返回切分點的具體位置

**實現:

public

static

void

sort

(int

arr,

int low,

int high)

private

static

intpartition

(int

arr,

int low,

int high)

// 此時指標相遇,交換低位,因為是選擇低位作為切分點

swap

(arr, low, h)

;return h;

}// 用於交換的陣列兩個位置的值

private

static

void

swap

(int

arr,

int a,

int b)

快速排序(學習記錄)

快速排序是一種劃分交換排序,也就是分而治之。具體思想為 選取數列的乙個值作為基準數在數列中進行比較,把所有比基準數小的值放在基準數的左邊,所有比基準數大的值放在基準數的右邊將基準數的左右區間部分重複以上步驟,直到區間中只剩乙個數 接下來的步驟可以理解為挖坑填坑的操作 i指向陣列第乙個元素,j指向陣列...

C 快速排序 隨機快速排序 學習記錄

都是網上的資源,侵刪。快速排序演算法以及其他演算法的時間以及空間複雜度 我認為比較好理解的思路 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。坑填數1 i l j r 將基準數挖出...

記錄自已學習之排序演算法 快速排序

最近因為自已在做乙個小專案,深深的認識到自已的演算法真的是差極了,於是最近就開始看一點關於排序的演算法開始入門。首先第一種就是快速排序,快速排序起名就是源於它比較快的就能得出順序。下面我來說一下快速排序的原理 首先需要選擇乙個數作為對比 一般選擇的是陣列的第乙個數 然後有乙個指向陣列頭的數left,...