排 快速排序

2021-10-05 16:42:31 字數 594 閱讀 8487

思路:分為交換和遞迴。

交換:從右往左:如果值》=當前值,則跳過

從左往右:如果值<=當前值,則跳過

基準數: int temp= arr[left];

遞迴:方法:

quicksort(arr,left,i-1);

quicksort(arr,i+1,right);

遞迴出口

if(left>=right);

public static void quicksort(int arr,int left,int right)

int i = left;

int j = right;

int temp = arr[i];//基準數

//左右互換

while(i!=j)

//互換

if(i}

//重新選擇基準數

arr[left]= arr[i];

arr[i]= temp;

quicksort(arr,left,i-1);

quicksort(arr,i+1,right);

}

30 排序 快速排序

排序也是我們經常用到的一種演算法,之前我們遇到的有氣泡排序,選擇排序等。那麼我們就開始主要梳理一下排序演算法,並且重點理解出現頻率比較高的快速排序的方法。推薦看這個人的部落格,非常的詳細了。快速排序 適用場景 資料量大,快速排序是目前基於比較的排序中被認為是最好的方法,當待排序的關鍵字是隨機分布時,...

05 排序 快速排序

原理 整個過程其實只需三步 1.在一列陣列中,選擇其中乙個資料作為 基準 2.所有小於 基準 的資料,都移到 基準 的左邊,所有大於 基準 的資料,都移到 基準 的右邊。3.對於 基準 左邊和右邊的兩個子集,不斷重複第一步和第二步。直到所有的資料子集只剩下乙個資料為止。用例 現有一組資料如下 8 2...

2 排序演算法 快速排序

問題描述 利用快速排序演算法對下列例項排序,在演算法執行過程中,寫出陣列 a第一次排序後被分割的過程。a 65,70,75,80,85,55,50,2 解題思想 在快速排序中,記錄的比較和交換是從兩端向中間進行的,關鍵字較大的記錄一次就能交換到後面的單元,總的比較和移動次數較少。對於輸入的陣列a p...