排序算法之快速排序
来源:互联网 发布:淘宝动漫周边网店 编辑:程序博客网 时间:2024/06/05 01:44
归并排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
#include<iostream>
using namespace std;
using namespace std;
void QSort(int arr[],int begin,int end)
{
if(begin>=end)
{
return;
}
int first=begin,last=end;
int key=arr[first];
while(first<last)
{
while(first<last&&arr[last]>=key)
{
last--;
}
arr[first]=arr[last];
while(first<last&&arr[first]<=key)
{
first++;
}
arr[last]=arr[first];
}
arr[first]=key;
QSort(arr,begin,first-1);
QSort(arr,first+1,end);
}
{
if(begin>=end)
{
return;
}
int first=begin,last=end;
int key=arr[first];
while(first<last)
{
while(first<last&&arr[last]>=key)
{
last--;
}
arr[first]=arr[last];
while(first<last&&arr[first]<=key)
{
first++;
}
arr[last]=arr[first];
}
arr[first]=key;
QSort(arr,begin,first-1);
QSort(arr,first+1,end);
}
int main()
{
int arr[]={11,4,7,8,43,2,56,23,8,1,3,9};
int size = sizeof(arr)/sizeof(int);
QSort(arr,0,size-1);
for(int i=0;i<size;i++)
{
cout<<arr[i]<<" ";
}
return 0;
}
阅读全文
0 0
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法 之 快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- 排序算法之快速排序
- mfc 中child属性的两个窗口重叠 解决重叠部分不停闪烁问题
- java(6)面向对象(第二天)
- 关于linux系统端口telnet能不能通的问题
- 关于2018年 九大改变世界的技术趋势
- 解决关闭Hadoop时no namenode to stop异常
- 排序算法之快速排序
- 开篇
- 深入理解Dijkstra(迪杰斯特拉)算法(正确思路+优化+原理)
- this指针
- FtpClient
- 极飞P20植保无人机测评
- Socket send函数和recv函数详解
- a 超链接
- 笔记:centOS 7修改ip地址