一、冒泡的算法
1、伪代码
冒泡排序的核心思路:
(1)两层循环结构,第一个for循环是因为每遍历比较一次就把最大的数字沉到尾部进行剔除;第二个for循环是遍历比较剩下的未排序的数组
(2)核心代码
for (j = 0; j < 9; j++) /进行9次循环 实现9趟比较/
{
for (i = 0; i < 9 - j; i++) /在每一趟中进行9-j次比较/
{
if (a[i] > a[i + 1]) /相邻两个数比较,想降序只要改成a[i]<a[i+1]/
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
2、代码实现
#include<iostream>
void main()
{
int a[10];
int i, j, t;
printf("input 10 numbers:\n");
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]);
for (j = 0; j < 9; j++) /*进行9次循环 实现9趟比较*/
{
for (i = 0; i < 9 - j; i++) /*在每一趟中进行9-j次比较*/
{
if (a[i] > a[i + 1]) /*相邻两个数比较,想降序只要改成a[i]<a[i+1]*/
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
printf("the sorted numbers:\n");
for (i = 0; i < 10; i++)
printf(" %d", a[i]);
}