冒泡排序法
#include<stdio.h> void main() { int a[10]; //定义一个数组既它的元素为10 int i,j,temp; //定义3个变量 printf("输入10个整数:\n\a"); for(i=0;i<10;i++) scanf("%d",&a[i]); //依次输入10个整数 for(i=0;i<9;i++) //进行9轮排序 { for(j=0;j<9-i;j++) //每轮进行9-i次交换 if(a[j]>a[j+1]) //(>升序,<降序) { temp=a[j]; a[j]=a[j+1]; //大的沉底,小的上浮 a[j+1]=temp; } } printf("排序结果:"); for(i=0;i<10;i++) //依次输出排序结果 printf("%d\t ",a[i]); }
/*
冒泡排序(假设升序):外层循环的循环次数和:就是求每一次最大值的次数之和(把每一次求最大值当作一次次数);
内层循环的循环次数和:就是在每一次求最大值中两两进行比较大小的次数和
eg:假设求6个数进行升序排大小
外层循环的循环次数 内层循环的循环次数
(共6-1次)
求最大值: 第一次: 5次
第二次: 4
第三次: 3
第四次: 2
第五次: 1
*/