大家好,欢迎来到IT知识分享网。
泡排序算法的运作如下:
1, 比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3. 针对所有的元素重复以上的步骤,除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码实例(⊙o⊙)…
/*方法 冒泡排序!!
原理:遍历和交换
16 25 9 90 23
某个数字小于后面的数字,那么就交换
1 25 16 9 90 23
2 25 16 9 90 23
3 25 16 90 9 23
4 25 16 90 23 9 最小的数字来到了最后
a 需要比较多轮,(数组长度-1)轮
b 每一轮的次数较上一轮-1
(数组长度-1)-当前的轮数
*/
#include <stdio.h>
#define n 5 //宏定义
int main ()
{ int i ,j;//循环变量
int h ; //用来交换的临时变量
int nums[n];
for (i=0;i<n;i++)
{
scanf ("%d",&nums[i]);
}
//外层循环控制轮数
for (i=0;i<n-1;i++)
{ //内层循环控制次数
for (j=0;j<n-i-1;j++)
{
if (nums[j]<nums[j+1])
{ h=nums[j+1];
nums[j+1]=nums[j];
nums[j]=h;
}
}
}
printf ("降序输出");
for (i=0;i<n;i++)
printf ("%d\t",nums[i]);
printf("\n");
for (i=0;i<n-1;i++)
{ //内层循环控制次数
for (j=0;j<n-i-1;j++)
{
if (nums[j]>nums[j+1])
{ h=nums[j+1];
nums[j+1]=nums[j];
nums[j]=h;
}
}
}
printf ("升序输出");
for (i=0;i<n;i++)
printf ("%d\t",nums[i]);
return 0;
}
/*降序输出99 25 23 16 9
升序输出9 16 23 25 99 请按任意键继续. . .
*/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12426.html