代码如下所示:
复制代码 代码如下:
/*
*
冒泡排序
*/
void BubbleSort(int arr[], int n)
{
int temp;
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
/*
*
选择排序
*/
void ChooseSort(int arr[], int n)
{
int temp, k;
for (int i = 0; i < n - 1; i++)
{
k = i;
for (int j = i + 1; j < n; j++)
{
if (arr[k] > arr[j])
{
k = j;
}
}
if (k != i)
{
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
/*
*
快速排序,官方原版
*/
void q_sort(int numbers[], int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = numbers[left];
while (left < right)
{
while ((numbers[right] >= pivot) && (left < right))
{
right--;
}
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
{
left++;
}
if (left != right)
{
numbers[right] = numbers[left];
right--;
}
}
numbers[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
{
q_sort(numbers, left, pivot-1);
}
if (right > pivot)
{
q_sort(numbers, pivot+1, right);
}
}
/*
*
快速排序
*/
void quick_sort(int *x, int low, int high)
{
int i, j, t;
if (low < high) /*要排序的元素起止下标,保证小的放在左边,大的放在右边。这里以下标为low的元素为基准点*/
{
i = low;
j = high;
t = *(x+low); /*暂存基准点的数*/
while (i<j) /*循环扫描*/
{
while (i<j && *(x+j)>t) /*在右边的只要比基准点大仍放在右边*/
{
j--; /*前移一个位置*/
}
if (i<j)
{
*(x+i) = *(x+j); /*上面的循环退出:即出现比基准点小的数,替换基准点的数*/
i++; /*后移一个位置,并以此为基准点*/
}
while (i<j && *(x+i)<=t) /*在左边的只要小于等于基准点仍放在左边*/
{
i++; /*后移一个位置*/
}
if (i<j)
{
*(x+j) = *(x+i); /*上面的循环退出:即出现比基准点大的数,放到右边*/
j--; /*前移一个位置*/
}
}
*(x+i) = t; /*一遍扫描完后,放到适当位置*/
quick_sort(x,low,i-1); /*对基准点左边的数再执行快速排序*/
quick_sort(x,i+1,high); /*对基准点右边的数再执行快速排序*/
}
}
// 输出数组元素
void outArray(int arr[], int n)
{
for(int i = 0; i < n; i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
}
void main()
{
const int N = 5;
int arr1[N] = {4, 3, 5, 2, 1};
int arr2[N] = {4, 3, 5, 2, 1};
int arr3[N] = {4, 3, 5, 2, 1};
cout<<"Before bubble sort"<<endl;
outArray(arr1, N);
BubbleSort(arr1, N);
cout<<"After bubble sort"<<endl;
outArray(arr1, N);
cout<<"/nBefore chooose sort"<<endl;
outArray(arr2, N);
ChooseSort(arr2, N);
cout<<"After chooose sort"<<endl;
outArray(arr2, N);
cout<<"/nBefore quick sort"<<endl;
outArray(arr3, N);
//q_sort(arr3,0, N - 1);
quick_sort(arr3,0, N - 1);
cout<<"After quick sort"<<endl;
outArray(arr3, N);
system("pause");
}
相关推荐:
ChatGPT:引领人工智能对话新时代的智能助手,Ai shiang
OpenAI账号申诉怎么办?全方位解析解决方案,ai写作免费公众号下载
SEO优化做什么的?揭秘SEO优化的核心价值与实战应用,ai做金色
SEO符合:提升网站排名的秘诀,助力企业赢在搜索引擎优化的赛道,优化没续费 网站没了
SEO模板:提升网站排名,助你快速抢占搜索引擎流量高地,选择seo职业缺点
AI助手不需要登陆-畅享便捷生活,随时随地高效工作,ai客服 对话
打造内容创作新时代:有言AI生成助力创作者释放灵感
WPJVX:开启数字化未来的智慧平台,关键词排名技术咨询乐云seo
AI文章精简-高效提炼与优化你的内容创作,ai quid
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
SEO优化引导新官网,助力企业迈向成功之路,宋轶ai换
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司
seo算是什么营销方式,seo是网络营销吗 ,ai318
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
SEO那么重要,企业如何通过它脱颖而出?,自媒体推广营销的概念
seo软文用什么论坛,seo软文是什么意思 ,爱字幕的AI变脸不见了
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
SEO优化与SEM广告:提升品牌曝光与流量的双重利器,ai接回头
“更加通顺”-让生活与工作无缝衔接的语言魅力,SEO书架书桌收纳
ChatGPT的超链接点不开?解决方法一网打尽!,情感ai写作指令是什么
AI一键生成文章网页版,让内容创作更简单高效
ChatGPT不能打开EL?揭秘这一困扰背后的真相与解决方案,ai被动房
什么是seo的豆子,何为seo ,ai圆复制
优化*:打造更加高效、创新的娱乐体验,石排网站建设制作多少钱
未来的效率利器AI软件下载AI,助您轻松驾驭智能世界
ChatGPT内部HTTP接口文档-为开发者提供高效便捷的AI服务接入方式,安屿ai
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
在线AI文章:为您打造全新内容创作体验
SEO韩国:为您开启国际市场的增长之门,seo文章标题有哪些
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
AI网页设计生成-智能化创造无限可能,ai机甲风背景音乐
seo要懂些什么,seo主要做什么的 ,小艾艾AI
SEO专业怎么样?未来发展的无限潜力与职业前景,联通ai智能早教
智能AI生成文章释放创作新可能
ChatGPT当前不可用?背后的原因与解决方案全解析,ai propos
亚马逊站内seo是什么优化,亚马逊seo关键词优化软件 ,ai画卡通章鱼
2025年整站SEO排名优化策略:让你的网站脱颖而出,id排版ai
SEO教育:搜索引擎优化,开启成功职业之路,搜狗SEO排名接单
URL站长的崛起:打造高效网站运营的秘密武器,网站建设费用计算依据
SEO功能:助力网站流量提升与品牌曝光,天津公司网站建设与维护
SEO兼职:如何通过SEO兼职实现收入增长与职业突破,濮阳网站建设官网
AI人工智能生成文章:开启写作新时代
SEO优化知识全解析:提升网站排名的秘密武器,ai出错合集
AI工具,让工作效率翻倍:AI工具教程全面解析
seo简介主要写什么,seo主要内容 ,AI弧线这
什么是seo反连接,网站反链多好还是少好 ,网易ai产品
SEO确实是企业增长的关键,这些技巧让你走在行业前沿,山东网站建设信息
SEO阶段解析:从入门到精通,助你站稳搜索引擎的前沿,网站建设特定开发
Chato1免费么?揭开这款AI聊天机器人的神秘面纱,交个朋友ai写作