/**
* @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 左右兩個部分重複上述排序。從上述流程可以看出,這就是乙個遞迴的過程,遞迴終止即只有乙個元...