有没有人可以告诉我这种排序方法的名字

哎木闹特you 2018-04-12 07:48:13
//对一组数组从数组0开始每次两两比较大小,n个数,一个循环比较n/2或n/2-1次。接着下一次循环从数组1开始两两比较,一个循环比较n/2-1或n/2次,这样交替比较,最多n次循环就可以排列好。
//若代码有错误,希望提示。
#include<stdio.h>
void sorted(int a[100],int b)
{
int d;
int k = 0;
for (int j = 0; j < b; j++)
{
if (k % 2 == 0)
{
for (int i = 0; i <= b - (b % 2) - 1;)
{
if (a[i] >= a[i + 1])
{
d = a[i];
a[i] = a[i + 1];
a[i + 1] = d;
}
i += 2;
}
}
else if (k % 2 == 1)
{
for (int x = 1; x <= b - 2;)
{
if (a[x] >= a[x + 1])
{
d = a[x];
a[x] = a[x + 1];
a[x + 1] = d;
}
x += 2;
}
}
k++;
}
for (int i = 0; i < b; i++)
{
printf("%d ", a[i]);
}
}
int main()
{
int int_a[100], intb;
scanf("%d", &intb);
for (int i = 0; i < intb; i++)
{
scanf("%d", &int_a[i]);
}
sorted(int_a,intb);
}
...全文
679 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
哎木闹特you 2018-04-12
  • 打赏
  • 举报
回复
引用 6 楼 qq_40989705 的回复:
[quote=引用 4 楼 zhao4zhong1 的回复:] <1000个元素,冒泡排序 <100000个元素,qsort函数 <10000000个元素,放数据库中,建索引,(B+树排序) ≥10000000个元素,没用到过。 各种排序算法动画演示http://www.webhek.com/misc/comparison-sort/
非常感谢你的提示,对我帮助很大.[/quote]非常感谢您的动画,很清楚
哎木闹特you 2018-04-12
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
<1000个元素,冒泡排序 <100000个元素,qsort函数 <10000000个元素,放数据库中,建索引,(B+树排序) ≥10000000个元素,没用到过。 各种排序算法动画演示http://www.webhek.com/misc/comparison-sort/
非常感谢你的提示,对我帮助很大.
哎木闹特you 2018-04-12
  • 打赏
  • 举报
回复
引用 3 楼 kobehahaha 的回复:
什么意思 数组0 数组1 那你到底要给谁排序?
拿时位置,数组第一个元素,第二个元素,没说清楚,抱歉
赵4老师 2018-04-12
  • 打赏
  • 举报
回复
<1000个元素,冒泡排序 <100000个元素,qsort函数 <10000000个元素,放数据库中,建索引,(B+树排序) ≥10000000个元素,没用到过。 各种排序算法动画演示http://www.webhek.com/misc/comparison-sort/
百合杰 2018-04-12
  • 打赏
  • 举报
回复
什么意思 数组0 数组1 那你到底要给谁排序?
哎木闹特you 2018-04-12
  • 打赏
  • 举报
回复
引用 1 楼 qq_24947841 的回复:
冒泡排序。。
不是冒泡,现在明白了,啥也不是。我以为从循环上可以比冒泡快一点,但是测试了几个数据,反而比冒泡慢了一点,不纠结这个排序了。
考拉一枚 2018-04-12
  • 打赏
  • 举报
回复
冒泡排序。。

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧