關於快速排序的總結

2021-08-17 03:51:04 字數 1084 閱讀 7741

快速排序其實是氣泡排序的公升級版,都具有交換排序的思想。

快速排序通過一遍排序,將資料分為兩部分,一部分資料都比另外一部分資料小,然後再分別對這兩部分資料再進行此排序,直到排序結束。因此,此排序方法用到了遞迴。

下面來舉個例子:(對69 65 90 37 92 6 28 54 八個數進行排序)   

69 65 90 37 92 6 28 54        //以陣列的第乙個元素為基準base

54 65 90 37 92 6 28 69        //從陣列右側開始,取出資料依次與base進行比較,直到找到小於base的數,然後兩者進行交換

54 65 69 37 92 6 28 90        //從陣列左側開始,取出資料依次與base進行比較,直到找到大於base的數,然後兩者進行交換

54 65 28 37 92 6 69 90        //從右側開始,操作與上述相同

54 65 28 37 69 6 92 90        //從左側開始,操作與上述相同

54 65 28 37 6 69 92 90        //到此步驟,base左邊的數都比base小,base右邊的數都比base大

然後再通過遞迴,將base左右兩邊的數繼續按此方法排序,直到排序結束。

#include #define arraylen 10                                    //比較十個數

int division(int a,int left,int right); //宣告分割函式,返回基準的序號值

void quicksort(int a,int left,int right); //宣告快排函式

int main()

a[left]=base; //儲存基準數

return left; //返回基準序號

}void quicksort(int a,int left, int right)

}

關於排序(快速排序)

package com.sw.demo.test 關於快速排序 author song public class testquicksort quicksort arr,0,arr.length 1 快速排序 for int i 0 i arr.length i 快速排序 param arr par...

關於快速排序

int quicksort int array,int left,int right if left j quicksort array,left,j if i right quicksort array,i,right return 0 注意快速排序是通過遞迴完成的,也就不難理解其運用的思想主要是...

排序總結 快速排序

思想 從陣列中選取乙個數作為基準值,按照從大到小排序小於基準值的放在基準值的左邊,大於基準值的在基準值的右邊 核心partition過程 選取陣列第乙個元素作為基準值,小於區 left 1,j 1 大於等於區 j,i 1 讓變數i從left 1位置開始遍歷陣列,j變數位置是小於區間的而最後乙個數,若...