c 實現快速排序

2021-08-04 03:01:23 字數 718 閱讀 7326

#include#includeusing namespace std;

#define list_init_size 100

#define listincrement 10

#define elemtype int

typedef structsqlist;

//列印

void printl(sqlist &l);

//建順序表

void initlist_sq(sqlist &l)

//在第i位置插入元素e

void listinsert_sq(sqlist &l, int i, elemtype e)

int *p, *q;

q = &(l.elem[i - 1]);

for (p = &(l.elem[l.length - 1]); p >= q; --p) //將第i位置及其以後的元素後移乙個位置

*(p + 1) = *p;

*q = e;

++l.length;

}//快速排序(氣泡排序)

void qsort(sqlist &l, int low, int high)

if (firstif (low + 1}//列印

void printl(sqlist &l)

cout << endl;

}void main()

排序 快速排序,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...