快速排序 及其改进
来源:互联网 发布:大势至usb软件 编辑:程序博客网 时间:2024/05/22 00:49
#include <iostream>using namespace std;void quicksort (int array[],int left,int right);//从小到大排序 int main(){int array[101];int num;cin>>num;for(int i=1;i<=num;i++)cin>>array[i];quicksort(array,1,num);cout<<"排序后:";for(int i=1;i<=num;i++) cout<<array[i]<<" ";return 0; } void quicksort (int array[101],int left,int right) { int i,j,temp,date;//temp为基准数 固定基准数为左端第一个元素。 if(left>right) return ; i=left; j=right; temp=array[i]; while(i!=j) { while(array[j]>=temp&&i<j) j--; while(array[i]<=temp&&i<j) i++; if(i<j) { date=array[i]; array[i]=array[j]; array[j]=date; } } //将temp归位。 array[left]=array[i]; array[i]=temp; quicksort(array,left,i-1); quicksort(array,i+1,right); }
<pre name="code" class="cpp">
改进快排的核心函数;void quicksort (int array[],int left,int right);int PARTITION (int array[],int left,int right);//确定基准数。 void quicksort (int array[101],int left,int right) { int locate; if(left<right) { locate=PARTITION(array,left,right); quicksort(array,left,locate-1); quicksort(array,locate+1,right); } } int PARTITION (int array[],int left,int right){int temp;int x=array[right];int i =left-1;int j=left;for(j;j<right;j++){if(array[j]<=x){i++;temp=array[i];array[i]=array[j];array[j]=temp;}}temp=array[i+1];array[i+1]=array[right];array[right]=temp;return i+1;}
0 0
- 快速排序 及其改进
- 快速排序及其改进
- 快速排序及其改进
- 快速排序算法及其改进算法实现
- 快速排序及其改进算法C++实现
- 关于快速排序(quick sort)及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 快速排序改进
- 快速排序的改进
- 快速排序-改进
- 【16.52%】【codeforces 733C】Epidemic in Monstropolis
- Core Image 你需要了解的那些事~
- 中文导致Mybatis无效的列索引
- 关于QStyledItemDelegate在tableview控件中的使用心得
- c++运算符号优先级 和delphi是不同的。
- 快速排序 及其改进
- 搭建kamailio于阿里云服务器
- LINUX 进程查看指令
- Spring源码阅读之DefaultListableBeanFactory系列-DefaultSingletonBeanRegistry
- iOS 10 开发适配系列 之 权限Crash问题
- 使用D2D出现的错误
- ActiveX获取JavaScript传递的二维数组
- Codeforces Round #378 (Div. 2)A.B.C
- MySQL的Innodb中的事务隔离级别和锁的关系