1.冒泡排序法:
对一维数组里的所有数进行两两比较,最终,数组里下标为0的既是最小的。这么做的优点:冒泡排序容易理解,结果也好理解。缺点:费时间(在现在的CPU计算能力下,这个真的会耽搁多久时间呢?如果是非常多的数据,大概能多多久呢?)
int arr[]=new int []{1,3,4,267,-100,-50,478,52};//定义一个数组 for(int i=0;i<arr.length;i++){ for(int j=0;j<(arr.length-1);j++){//因为j+1的存在,故其长度要比数组长度少1 if(arr[j]>arr[j+1]){//交换数据 int tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } } } System.out.println(arr[(0)]+" "+arr[(arr.length-1)]);//arr[0]是最小值。那么arr[arr.length-1]这个应该就是最大值了。
2.不太清楚这个算法,感觉像是选择排序。将arr[0]定义为最小和最大,然后让arr[i]开始每个都与之相比,如果后面的值比它小,将后面的赋值给arr[0],最终可以得出最大和最小。但这种方法不能像冒泡那样,可以知道第二大/第二小的,功能比较单一。
int min=arr[0]; int max=arr[0];//将数组的第一个值定义成最大 最小 for(int a=1;a<arr.length;a++){ //将arr[0]定义了,那么就应该从arr[1]开始 if(arr[a]<min){//判据,如果有一个比min小,那么就将此值赋值给最小 min=arr[a]; } if(arr[a]>max){//判据,如果有一个比max大,那么就将此值赋值给最大 max=arr[a]; } } System.out.println(min+" "+max);