Bubblesort(数组经典冒泡排序)
#include <stdio.h>
int main()
{
int array[5]={21,34,12,34,56};
int i,j;
for(j=0;j<4;j++)//同样的操作执行四边即可
for(i=0;i<4;i++)//每次都从第一元素开始执行一共比较四次
{
{
if(array[i]>array[i+1])//把比较大的数沉下去
int temp;
temp=array[i];
array[i]=array[i+1];
array[i+1]=temp;
}
}
for(int i=0;i<5;i++)//把排序好的数组输出
{
printf("%d",array[i]);
}
return 0;
}
2.轻泡泡上浮
#inlude <stdio.h>
int main()
{
int array[5]={2,5,3,89,72};
int i,j;
for(i=0;i<4;i++)//双层嵌套循环,四次又四次即可排出所有的较小值
{for(j=4;j>0;j--)
if(array[i]<array[i-1]);
int temp;
temp=array[i];
array[i]=array[i+1];
array[i+1]=temp;
}
for(int i=0;i<5;i++)//输出模块
{
printf("第%d个:%d",i,array[i]);
}
return 0;
}
冒泡排序的思路:函数设计模块可分为三部分,第一部分是数据输入
第二部分是冒泡排序的核心步骤(泡泡上浮或者下沉),第三部分是数据的输出。
数据输入:主要利用printf函数和scanf函数,与用户进行交互
排序核心:双层嵌套循环,内层循环完整执行一次将得到一个最大值/最小值,外层循环完整执行一次将得到排序的结果(即有限个最大值或最小值按顺序排列的数组)。
数据输出:利用循环结构,推荐for
for(int i=0;i<5;i++)printf("%d",array[i]);
如果使用while:
int i=0;
while(i<5)
{
printf("%d",array[i]);
i++;
}
可以明显看到代码的量的差别