快速排序
来源:互联网 发布:js 点击图片放大 编辑:程序博客网 时间:2024/06/11 15:25
快速排序是选择目前比较流行的一种排序方法(从小到大)
对一些大数据快排有着卓越的优点,它的思想也非常的巧妙
是用递归的方法进行排序。
原理:快速排序以第一个数n作为键值(轴值),将比它小的放在它前面,比它大的放在后面;现在以n为数轴分为2部分
左和右,分别再以左右为单独一组,分别以第一个为键值(轴)进行上面的操作,不难发现,既然是重复操作,不就是递归吗?
程序:
void print(int a[])//打印函数
{
int i;
for(i = 0 ;i < 10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int quick_port_local(int a[],int left,int right)
{
int temp = a[left];
while(left < right)
{
while(left < right && a[right] >= temp)//一定要从右开始,否则第一位无法排序
right--; //右面一定要比temp大
a[left] = a[right];
while(left < right && a[left] <= temp)
left++;//左面一定要比temp大
a[right] = a[left];
}
a[left] = temp;
return left;
}
void quick_port(int a[],int left,int right)
{
int i;
int local;
if (left < right)
{
local = quick_port_local(a,left,right);
quick_port(a,left,local-1);
quick_port(a,local+1,right);
}
}
int main()
{
int a[10] = {10,1,8,4,5,7,6,3,2,9};
quick_port(a,0,9);//(从小到大排序)
print(a);
return 0;
}
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 当线上项目拉下本地使用时图片无法加载,试试配置域名
- C++中setiosflags()的用法
- 网页监控系统设计之使用mjpg-streamer
- MySQL 对于千万级的大表要怎么优化?
- OPC UA--第十四部分 PubSub 发布订阅
- 快速排序
- leetcode 31. Next Permutation
- LeetCode
- SylixOS热插拔驱动接口(三)
- 排序算法之堆排序
- 浏览器兼容性问题
- python request库安装
- 【初探】 归并排序
- 索引动态模板的创建,删除,是否存在