视频学习中,看到了三个数值的从小到大的排序,方法诡异
找到最大值和最小值,然后用三个数的和减去最大值和最小值,找到中间值,然后重新进行排序
昨晚之后在想,如果是四个数怎么办呢?
思路:
- 简单的四个数应该就可以代表多数值了,建立int[] arr = {2,4,1,3}模拟;
- 考虑方法,之前高数中有讲到,正常以此考虑的是,从左到右,第一个值与后面所有的值比较,然后第二个值和后面的所有值比较:
第一次运行{1,4,2,3} //第一个数值与后面的所有值比较,使arr[1]为最小值;
第二次运行{1,2,4,3} //第二个数值与后面的所有值比较,使arr[1]为倒数第二小的值;
依次进行…… - 在java中,如果进行二者之间调换,就需要一个中间值临时储存,以避免其中一个值发生丢失,temp:
比如第一次运行:temp = arr [0]; arr[0] = arr[1]; arr[1] = temp; - 因此,就有了思路,需要两个循环,一个是以此选择值,二是以此比较的值;
代码如下:
/*
输入四个数,从小到大排序
*/
public class Test13 {
public static void main(String[] args) {
int[] arr = {2, 4, 1, 3};
int temp;
for(int i = 0; i< arr.length; i++){
for(int j = i+1; j<arr.length; j++){
if(arr[j]<arr[i]){
temp = arr[i];
arr[i]= arr[j];
arr[j] = temp;
}
}
}
for(int i =0 ;i <arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}