int[] a = {12 , 5 , 6 , 45 , 2 , 3};
for (int i = 0 ; i<a.length - 1 ; i++){
for (int j = 0 ; j < a.length - 1 ; j++){
if (a[j] > a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//for (int i = 0 ; i<a.length - 1 ; i++)这层循环意思是需要进行5次循环
//for (int j = 0 ; j < a.length - 1 ; j++)这层循环过程
循环第1次 12 > 5 5 12
循环第2次 12 > 6 6 12
循环第3次 12 > 45 12 45
循环第4次 45 > 2 2 45
循环第5次 45 > 3 3 45
i=0的循环结束out:5 , 6 , 12 , 2 , 3 , 45
每次循环都是将最大的一个放到最后面!!
然后在进行i = 1 的循环...
而且每次必须都进行比较,比较耗时...
int[] a = {12 , 5 , 6 , 45 , 2 , 3};
for (int i = 0 ; i<a.length - 1 ; i++){
for (int j = i+1; j < a.length; j++){
if (a[i] > a[j]){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i = 0 ; i<a.length - 1 ; i++)也是进行了5次排序
for (int j = i+1; j < a.length; j++) 这里进行了5 - i+1 次排序
过程 循环第1次 12 > 5 5 12
循环第2次 5 > 6 5 6
循环第3次 5 > 45 5 45
循环第4次 5 > 2 2 5
循环第5次 2 > 3 2 3
out:2 ,12,6,45,5,3
每次的过程就是直接选出 最小的 一个放最前面
下一次,就是从 12开始比较了 ,效率比冒泡高
1.
import java.util.stream.IntStream;
public class SmallestIntegerFinder {
public static int findSmallestInt(int[] args) {
return IntStream.of(args).min().getAsInt();
}
}
2.
import java.util.Arrays;
public class SmallestIntegerFinder {
public static int findSmallestInt(int[] args) {
Arrays.sort(args);
return args[0];
}
}
3.
public static int findSmallestInt(int[] args) {
int smallest = Integer.MAX_VALUE;
for (int i : args)
smallest = (smallest>i) ? i : smallest;
return smallest;
}
4.
public static int findSmallestInt(int[] args) {
int min = args[0];
for(int i = 1; i < args.length; i++){
if(min > args[i]) min = args[i];
}
return min;
}