快速排序的C++实现
快速排序是一种比较简单而且排序效果很不错的排序算法,具体的介绍可以看这篇文章“这篇文章"
#include
using namespace std;
void quicksort(int *data,int start,int end);
void swap(int *data,int i,int j);
int main()
{
int data[] = {6,1,2,7,9,3,4,5,10,8};
cout << "before sort,data is" << endl;
for(int i = 0;i < 10;++i)
cout << data[i] << " ";
cout << endl;
quicksort(data,0,9);
cout << "After sorted,data is:" << endl;
for(int i = 0;i < 10;++i)
cout << data[i] << " ";
return 0;
}
void quicksort(int *data,int start, int end)
{
if(start > end)
return;
int i = start;
int j = end;
int base = data[i];
while (i < j)
{
while(data[j] >= base && j > i)
--j;
while(data[i] <= base && i < j)
++i;
if (i < j)
swap(data,i,j);
}
swap(data,start,i);
quicksort(data,start,i-1);
quicksort(data,i+1,end);
}
void swap(int *data,int i,int j)
{
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
会写代码的医生,会治病的博士
分类:
数据结构与算法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程