快速排序算方法

快速排序算法的原理:在待排序的n个记录中任取一个记录(通常取第一个记录)为分区标准,把所有小于该排序码的记录移到左边,香港服务器租用,把所有大于该排序码的记录移到右边,香港空间,中间放所选记录,称之为一趟排序;然后,对前后两个子序列分别重复上述过程。继续下去,香港空间,知道所有记录都排好序。

算法:

头文件定义结构体:

1 #ifndef QUICK_SORT 2 #define QUCIK_SORT 1 3 struct SortObject { 4int n; 5int * element; 6 };typedef struct SortObject * QuickSortObject;10 11 QuickSortObject createSortObject(int num)12 {13QuickSortObject sort = NULL;14sort = (QuickSortObject) malloc(sizeof(struct SortObject));15if(NULL != sort)16 {17sort->element = (int *) malloc(sizeof(int) * num);18if(sort->element != NULL)19sort->n = 0;20else free(sort);21 }printf();24return sort;25 }quick_sort(QuickSortObject object, int begin, int end)28 {temp = (begin >= end)33return;34i = begin; j = end;35temp = object->element[i];36while(i != j)37 {38while(i < j && object->element[j] >= temp)39j–;40if(i < j)41object->element[i++] = object->element[j];42while(i < j && object->element[i] <= temp)43i++;44if(i < j)45object->element[j–] = object->element[i];4647 }->element[i] = temp;50quick_sort(object, begin, i – 1);51quick_sort(object, i + 1, end);52 }这一次是一个告别,或者一个永远的告别,

快速排序算方法

相关文章:

你感兴趣的文章:

标签云: