快速排序 C與C 實現

2021-10-05 08:11:29 字數 1969 閱讀 6114

題目:隨機產生10個0-9的整數,用快速排序法對其進行排序。(公升序)

演算法分析:

c**:

#define _crt_secure_no_warnings

#include

#include

void

quicksort

(int array,

int start,

int end)

//填坑

if(low < high)

//從左往右找比基數大的

while

(low < high&&array[low]

< target)

//填坑

if(low < high)

}//迴圈結束後,low和high指向同乙個位置,將target放在該位置處

array[low]

= target;

quicksort

(array, start, low -1)

;quicksort

(array, low +

1, end);}

}void

printarray

(int array,

int n)

printf

("\n");

}int

main()

printf

("快速排序前:");

printarray

(array, n)

;quicksort

(array,

0, n -1)

;printf

("快速排序後:");

printarray

(array, n)

;return0;

}

c執行結果:

#define _crt_secure_no_warnings

#include

#include

using

namespace std;

void

swap

(int

*a,int

*b)void

quicksort

(int array,

int start,

int end)

while

(array[low]

<= target&&low != end);do

while

(array[high]

>= target&&high != start);if

(low < high)

else

}swap

(&array[start]

,&array[high]);

quicksort

(array, start, high -1)

;quicksort

(array, high +

1, end);}

}void

printarray

(int array,

int n)

cout << endl;

}int

main()

cout <<

"快速排序前:"

;printarray

(array, n)

;quicksort

(array,

0, n -1)

; cout <<

"快速排序後:"

;printarray

(array, n)

;return0;

}

c++執行結果:

排序 快速排序,C 實現

本文 的github位址 基本思想 快速排序 是對 氣泡排序 的改進。基本原理 基於分治法,在待排線性表中取乙個元素pivot作為樞軸值,通過一趟排序將待排線性表劃分為獨立的兩部分,第一部分的所有元素小於pivot,第二部分的所有元素大於等於pivot,pivot位於其最終位置。遞迴對兩個子表做快速...

快速排序 c 實現

快速排序思想 基於分治策略,對氣泡排序的一種改進。對於要排序的乙個序列,從中選一值進行排序,將其放入到正確的位置position。然後以position為界,對左右兩部分再做排序。直到劃分的長度為1。步驟 設有一待排序的序列 1.分別設定low hight指向序列的最左端 最右端 從序列中選乙個進行...

快速排序(C 實現)

include using namespace std void swap int a,int b int sort int begin,int end if beginwhile beginif begin return begin void quicksort int begin,int end...