快速排序
来源:互联网 发布:杭州初级程序员薪资 编辑:程序博客网 时间:2024/05/21 17:35
记得读书的时候一直纠结快速排序,自己觉得已经掌握了其思想(找到一个位置i,i左边的元素小于位置i上的元素,右边的元素大于i上的元素,然后递归),但就是写不出来,心里十分苦闷。晚上冲凉的时候又想到这事,于是有了下面的代码,运行,无错,痛快。
#include<iostream>
using namespace std;
template<class T> void swap(T *a,int i,int j)
{
T tmp = a[i];
a[i] = a[j];
a[j] = tmp;
return;
}
template<class T> int find_pos(T *a,int left,int right)
{
if(left>=right)
return left;
int i = left;
int j = i;
for(;j<=right;j++)
{
if(a[i]>a[j])
{
swap(a,i+1,j);
swap(a,i,i+1);
i++;
}
}
return i;
}
template<class T> void quik_sort(T *a,int left,int right)
{
if(left >= right)
return;
int pos = find_pos(a,left,right);
quik_sort(a,left,pos-1);
quik_sort(a,pos+1,right);
}
int main()
{
int a[10] = {1,0,3,5,3,6,9,7,2,-8};
quik_sort(a,0,9);
for(int k = 0;k<10;k++)
{
cout<<a[k]<<" ";
}
cout<<endl;
system("pause");
}
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 为什么游戏叫第九艺术?
- 编程之美3.1字符串移位包含问题
- 工作中的随感
- Ubuntu更新管理器下载程序
- 编程原则
- 快速排序
- 视景体裁剪课程---视景体形状
- Entity Framework实体模型 入门视频教程
- 做一名较真的工程师
- POJ 一 1007 DNA Sorting
- namenod不能启动让我认识到了查看日志的重要性
- Linux平台下rar, 7z, zip压缩文件密码破解
- ZMap:在一个小时内扫描整个互联网
- TOJ1235最大连续子序列