c++快速排序
来源:互联网 发布:java中get方法 编辑:程序博客网 时间:2024/06/06 05:14
1、基于partition函数的快速排序
<span style="font-size:18px;">int partition(int *data, int start, int end){if(data == NULL || start > end){return -1;}int index = data[start];int i = start,j = end;while(i < j){while(i<j && data[j] >= index)j--;if(i<j)data[i++] = data[j];while(i<j && data[i] < index)i++;if(i<j)data[j--] = data[i];}data[i] = index;return j;}void quickSort(int *data,int start,int end){if(data == NULL)return ;if(start < end){int p = partition(data,start,end);quickSort(data,start,p-1);quickSort(data, p+1, end);}}int main (int argc, char* argv[]){int data[] = {6,2,4,3,5,1,7,6,8,9};int length = sizeof(data)/sizeof(int);quickSort(data,0,length -1);for(int i = 0; i<length;i++)cout<<data[i]<<' ';cout<<endl;system("pause"); return 0;}</span>
2、直接的快速排序
<span style="font-size:18px;">void quickSort(int *data,int start,int end){if(data == NULL || start > end){return ;}int index = data[start];int i = start,j = end;while(i < j){while(i<j && data[j] >= index)j--;if(i<j)data[i++] = data[j];while(i<j && data[i] < index)i++;if(i<j)data[j--] = data[i];}data[i] = index;quickSort(data,start,i-1);quickSort(data, i+1, end);}</span>
0 0
- 排序-快速排序(c)
- 快速排序--C语言
- 快速排序(c#)
- 快速排序C
- C++快速排序算法
- 快速排序QuickSort.c
- 快速排序(C#)
- 快速排序算法 C
- 快速排序(C++)
- 快速排序C语言
- (C#)快速排序 Quicksort
- 快速排序 C代码
- 快速排序(C)
- C快速排序算法
- 快速排序 Java/C
- C快速排序
- 快速排序C语言版
- 快速排序--C语言
- Redis 3.0新特性
- java.lang.ArrayIndexOutOfBoundsException: length=13; index=14 android.widget.AbsListView$RecycleBin.
- Javascript内存泄漏
- 两个数间的交换(按位操作不用中间变量temp即可实现两个数据的交换)C++按位与运算交换数据vs2013环境
- 解决DDMS无法查看/data目录问题
- c++快速排序
- Android Studio配置androidanntations
- Unable to find app for caller android.app.ApplicationThreadProxy解决方案
- Activity切换动画
- 用flask做microblog遇到的一些问题
- 浅析MySQL中exists与in的使用
- 16进制表示颜色
- 解决Invalid derived query! No property find found for type XX的问题
- 【CI PDO】CI框架下 Mysql PDO 使用方法小记