C C 實現快速排序

2021-05-27 16:09:56 字數 1365 閱讀 3261

/**

* @file gm_qsort.h

* @brief 實現快速排序

* @author don hao

* @date 2011-8-21 22:31:06

* @version

*
email:[email protected]
*
company:

*

modification:
*
write modifications here.
*/

#ifndef _gm_qsort_h

#define _gm_qsort_h

#ifdef __cplusplus

extern"c"

#endif /**< __cplusplus */

#endif /**< _gm_qsort_h */

/**

* @file gm_qsort.c

* @brief

* @author don hao

* @date 2011-8-21 22:31:08

* @version

*
email:[email protected]
*
company:

*

modification:
*
write modifications here.
*/

#include "gm_qsort.h"

#include #include void gm_qsort( char* data, int size, int isdes )

if (size > 1)

else

if (1 == isdes)

while((i < j) && (data[i] > pivot))

if (i < j)

}gm_qsort(data, i + 1, isdes);

gm_qsort(data + i + 1, size - i - 1, isdes);

}else

while((i < j) && (data[i] < pivot))

if (i < j)

}gm_qsort(data, i + 1, isdes);

gm_qsort(data + i + 1, size - i - 1, isdes);

}}void main()

; char b[10] = ;

gm_qsort(a, 10, 1);

gm_qsort(b, 10, 0);

}

C C 實現快速排序

1.思想就是遞迴的分而治之,每次遞迴就做兩件事 分段,對這個段依照pivot進行粗略的排序 2.對於分好的段,求出其中位數為pivot,然後小於pivot的全都放到這個段的左邊,大於pivot的全都放到這個段的右邊,下面是實現 include include template t class qui...

快速排序演算法實現C C

對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為o n 2 的排序演算法。雖然最壞情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因為它的平均效能非常好 它的期望時間複雜度是o nlgn 而且o nlgn 中隱含的常數因子非常小,另外他還能夠進行原址排序,甚至在虛擬環...

快速排序 C C

快排演算法 快排和冒泡都是基於交換的思想,但是進行了改進,更為高效。流程 1 首先設定乙個分界值,通過分界值將陣列分成左右兩部分。2 將大於或等於分界值的資料集中到陣列右邊,小於分界值的資料集中到陣列的左邊。3 左右兩個部分重複上述排序。從上述流程可以看出,這就是乙個遞迴的過程,遞迴終止即只有乙個元...