冒泡排序

这里求解的是一个数组中的最大值和 次最大值,

#include<stdio.h>
main(){
	
	int arr[20];
	int i,j,max=0,temp;
	for(i=0;i<20;i++)
		scanf("%d",&arr[i]);
	
	//直接用冒泡排序最快
	for(i=0;i<19;i++){//这里19是外围最多比较次数-是总的次数-1,因为最后一位数组不用排序
		for(j=0;j<19-i;j++){//内部比较:比较的次数是开始是除了自己N-1次,然后递减(因为最后一位的位置已经排列好了);所以是N-1-i
			if(arr[j]>arr[j+1]){//这里是比较第一个元素和后一个元素。
			//这里后面是交换
				temp=arr[j+1];
				arr[j+1]=arr[j];
				arr[j]=temp;
			}
		}
	}
	printf("最大值:%d,次大值%d",arr[19],arr[18]);
}
posted @ 2022-10-01 23:51  Development_UP  阅读(20)  评论(0)    收藏  举报