Algorithm--快速排序
2015-03-28 17:49
197 查看
#include "stdafx.h" #include <iostream> #define DATA_SIZE 14 void swap(int data[], int i, int j) { int iTemp = data[i]; data[i] = data[j]; data[j] = iTemp; } int partition(int data[], int iLow, int iHigh) { int iPoint = data[iLow]; while ( iLow < iHigh ) { while ( iLow < iHigh && data[iHigh] >= iPoint ) { iHigh--; } swap(data, iLow, iHigh); while ( iLow < iHigh && data[iLow] <= iPoint ) { iLow++; } swap(data, iLow, iHigh); } return iLow; } void qSort(int data[], int iLow, int iHigh) { int iPoint = 0; if ( iLow < iHigh ) { iPoint = partition(data, iLow, iHigh); qSort(data, iLow, iPoint - 1); qSort(data, iPoint + 1, iHigh); } } void printResult(int data[], int iDataSize) { printf("排序后的结果是:"); for ( int i = 0; i < iDataSize; i++) { printf("%d ", data[i]); } printf("\n\n"); } void quickSort() { int data[DATA_SIZE] = {3,6,1,4,2,5,9,33,8,1,22,32,11,18}; qSort(data, 0, DATA_SIZE - 1); printResult(data, DATA_SIZE); } int _tmain(int argc, _TCHAR* argv[]) { quickSort(); getchar(); return 0; }
相关文章推荐
- 【Algorithm】快速排序--算法实现
- 快速排序 [Algorithm]
- 快速排序与快速选择算法(quick sort and quick select algorithm)
- Algorithm - 快速排序
- Algorithm(三):快速排序
- Algorithm --> 快速排序
- 快速排序
- CLRS 7.1快速排序的描述
- 快速排序 递归与非递归
- C++实现冒泡排序,选择排序,插入排序,快速排序,归并排序
- 快速排序 迭代实现
- 第十六周项目一 验证算法——快速排序
- 快速排序
- 冒泡排序与快速排序
- 快速排序 求第k大数
- 快速排序的非递归实现
- 利用C实现泛型(generics)效果---原地洗牌,快速排序
- 第16周项目1-验证算法(4)快速排序 以第1个元素作为基准
- 快速排序
- 冒泡排序,插入排序,快速排序,归并排序,堆排序,选择排序,希尔排序