排序基本算法
来源:互联网 发布:数据库架构设计 编辑:程序博客网 时间:2024/05/19 22:23
- 快速排序
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。
步骤为:
- 从数列中挑出一个元素,称为 "基准"(pivot),
- 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分割结束之后,该基准就处于数列的中间位置。这个称为分割(partition)操作。
- 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
递回的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递回下去,但是这个算法总会结束,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。
代码示例如下:
#include <iostream>using namespace std;void quicksort(int a[],int left,int right){int i=left , j=right;int base=a[i];while(i<j){while (i<j&&a[j]>=base) j--;if(i<j) {int t=a[j];a[j]=a[i];a[i]=t;}while(i<j&&a[i]<=base) i++;if(i<j) {int t=a[j];a[j]=a[i];a[i]=t;}}a[i]=base;i++,j--;if(left<j) quicksort(a,left,j);if(i<right) quicksort(a,i,right);}void main(){int n,a[1001];cin>>n;for(int i=0;i<n;i++) cin>>a[i];quicksort(a,0,n-1);for(int i=0;i<n;i++) cout<<a[i]<<endl;}
- 排序-基本排序算法
- 算法:基本排序算法
- 基本排序算法 - 基本知识点
- 排序算法基本思想
- 常用基本排序算法
- 算法记录 : 基本排序
- 基本排序算法
- 基本排序算法实现
- 基本排序算法
- 基本排序算法思想
- 基本排序算法
- 基本的排序算法
- 排序基本算法
- 基本排序算法
- 基本排序算法
- 基本排序算法总结
- 基本排序算法汇总
- 基本排序算法小结
- 浅谈Android应用程序键盘消息处理机制
- RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播
- 采集音频和摄像头视频并实时H264编码及AAC编码
- 重载操作符详解
- 程序镜像示意图
- 排序基本算法
- 【模拟】谁拿了最多奖学金
- for(;;)和while(1)的效率问题
- Hibernate在oracle中ID增长的两种方式
- 2012最受企业欢迎的开发技能Top10
- GPRS模块中AT指令发送短信的PDU编码规则
- 網站程式上線前需要準備的事
- 用电脑测试GPRS模块的好坏
- flex4.5 国际化问题