1、 冒泡排序法
数组 int arr[5]={1, 2 , 3 , 4 , 5}
第一轮 arr[0] 和arr[1]进行比较
If(arr[0]<arr[1]) 交换位置
2 1 3 4 5
If(arr[1]<arr[2]]) 继续交换
2 3 1 4 5
If(arr[2]<arr[3]]) 继续交换
2 3 4 1 5
If(arr[3]<arr[4]) 继续交换
2 3 4 5 1
第二轮
If(Arr[0]<arr[1]) 继续交换
3 2 4 5 1
If(Arr[1]<arr[2]) 继续交换
3 4 2 5 1
If(Arr[2]<arr[3]) 继续交换
3 4 5 2 1
第三轮
If(Arr[0]<arr[1]) 继续交换
4 3 5 2 1
If(Arr[1]<arr[2]) 继续交换
4 5 3 2 1
第四轮
If(Arr[0]<arr[1]) 继续交换
5 4 3 2 1
总结上面一共比n-1 轮 第一轮比n-1次 第二轮比n-2次 第三轮比n -3次 第四轮比n-4
#include<stdio.h> #define N 5 int main(void){ int i = 0; int j = 0; float arr[N]={0}; float temp,max,two; //给数组复制 printf("请输入5个数:\n"); for(i=0;i<N;i++){ scanf("%f",&arr[i]); } //求出最大值 max = arr[0]; for(i=0;i<N;i++){ if(max<arr[i]){ max = arr[i]; } } printf("最大值max=%.1f\n",max); //冒泡排序(从小到大)从大到小只需要换<就行 for(i=0;i<N;i++){ //这个表示的是轮 for(j=0;j<N-1;j++){ //这个表示的比的次数 if(arr[j]>arr[j+1]){ temp =arr[j]; arr[j] = arr[j+1]; arr[j+1]=temp; } } } printf("排序结果如下:\n"); for(i = 0;i<N;i++){ printf("%.1f ",arr[i]); } printf("\n"); return 0; }