冒泡排序算法
冒泡排序算法是常用的算法之一,逻辑较为简单,以从小到大为例:
1)比较相邻两个元素的大小,小的放前面,大的放后面
if(a[i]>a[i+1])
{
temp = a[i]; //记录a[i]
a[i] = a[i+1]; //将a[i]的值赋给a[i+1]
a[i+1] = temp; //将temp(即原始的a[i])的值赋给a[i+1]
}
2)按照顺序输出就ok了。
下附完整代码(每个人的习惯不同,代码的写法可能会存在差异,仅供参考):
#include<stdio.h>
#include<string.h>
void main()
{
/*冒泡排序*/
int a[10]; //针对10个输入进行排序
int i, j, temp = 0; //将temp初始化,初始化参数是一个好习惯
printf("Please input ten numbers:\n");
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]); //依次输入10个数字
for (i = 0; i < 9 ; i++) //注意:因为是相邻两个数字进行比较,10个数字只需要比较9次就够了
{
for (j = 0; j < 9 - i; j++) //循环比较
{
if (a[j]>a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < 10; i++)
printf("%d\n", a[i]); //依次将排序后的数字输出出来
system("pause"); //Visual Studio中避免输出闪闭的语句,根据编译器需要可能不同
return 0;
}
希望能对需要的朋友有所帮助。