vlambda博客
学习文章列表

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++;}

可以明显看到代码的量的差别