#include<stdio.h>intmain(){// 降序排列int num[]={1,2,10,0,3,4,5};for(int i =0; i <7-1; i ++){for(int j =0; j <7- i -1; j ++){if(num[j]< num[j+1]){int temp = num[j];
num[j]= num[j+1];
num[j+1]= temp;}}}for(int i =0; i <7; i ++){printf("%d ", num[i]);}return0;}
扩展
冒泡算法有一种优化方式,就是增加一个flag
当本次内循环未发生交换时,说明数列已经是有序的,则可以退出循环
代码实现
#include<stdio.h>intmain(){// 降序排列int num[]={1,2,10,0,3,4,5};for(int i =0; i <7-1; i ++){int flag =1;for(int j =0; j <7- i -1; j ++){if(num[j]< num[j+1]){int temp = num[j];
num[j]= num[j+1];
num[j+1]= temp;// 该次内循环发生交换
flag =0;}}// 说明未发生交换,退出循环if(flag){break;}}for(int i =0; i <7; i ++){printf("%d ", num[i]);}return0;}