快速排序(c )

2021-10-24 05:24:58 字數 670 閱讀 1684

快速排序:

分治策略與遞迴。

自我感悟(如有紕漏請多包涵):把陣列中的第乙個數作為基準數temp(我們的目標是讓temp左邊的數都比他小,temp右邊的數都比他大),然後先從右邊j開始往前找出乙個比這個temp小的,再從左邊i開始找出乙個比temp大的,交換兩者位置,繼續查詢,直到i=j;替換基準數 和此時a[i]或者a[j]的值。這樣第一次設定的基準數兩邊分別就是比他大、比他小的數。再利用分治的方法,將temp左右兩邊的數通過呼叫本函式來排序,直到全部排完即可。

#include

#include

using

namespace std;

const

int n=

1010

;int a[n]

,n;void

quicksort

(int a,

int left ,

int right)

a[left]

=a[i]

; a[i]

=temp;

quicksort

(a,left,i-1)

;quicksort

(a,i+

1,right)

;return;}

intmain()

排序 快速排序(C )

1 演算法描述 1.1 設當前參加排序的陣列為array 0.n 1 選擇乙個元素 通常稱該元素為基準元素 作為基準元素 將小於或者等於基準元素的所有元素都移到基準元素的左邊 把大於或者等於基準元素的所有元素都移到分界元素的右邊 執行完 2 3 步驟後,基準元素左邊元素序列,基準元素,基準元素右邊元...

排序 快速排序(C )

如果看不懂這些乾巴巴的理 字,那就先不用看了,下面 中有詳細的注釋,大家可以先跟著 走幾遍,回過頭來再看這些文字描述,總之 紙上得來終覺淺,絕知此事要躬行。排序演算法哪家強,從實際應用的角度上將,快排表現很好。很自然地,人們會覺得短陣列比長陣列更好處理,因此可能會想到將原始陣列分為若干各子部分然後分...

快速排序 c

快速排序應該是目前最快,也是最常用的一種排序演算法。它將乙個集合劃分成兩個子集合,然後繼續遞迴來完成最終排序。具體做法 1.選取集合最右端的元素作為乙個參照物,稱之為 樞紐 pivot 2.開始計算分割位置。在計算時,進行元素交換,確保左側元素都小於樞紐,而右側都大於樞紐。3.根據分割位置,分別遞迴...