常用的两种算法:冒泡排序和选择排序
1.冒泡排序(排序后的结果 :从小到大):
class demo1{ public static void main(String[] args){ int[] strArr = new int[]{1, 2,57,48,24}; int temp = 0; for(int i = 0; i < strArr.length - 1; i++){ for(int j = 0; j < strArr.length - 1 - i; j++){ if(strArr[j] > strArr[j + 1]){ temp = strArr[j]; strArr[j] = strArr[j + 1]; strArr[j + 1] = temp; } } } for(int i = 0; i < strArr.length; i++){ System.out.print(strArr[i]); } } }
因为每次循环去执行if里面的语句,而if里面总是strArr[j]与strArr[j + 1]作比较,所以假如有五个元素要进行排序的话,(外面的for语句每走一次叫一个来回)第一次走一个来回并(第二个for循环)最后一次循环时,应该是strArr[3]与strArr[4]作比较,所以j 最大等于3,因此 j < strArr.length - 1 - i。
2.选择排序(排序后的结果 :从大到小):
class demo1{ public static void main(String[] args){ int[] strArr = new int[]{1, 2,57,48,24}; int temp = 0; for(int i = 0; i < strArr.length - 1; i++){ for(int j = i + 1; j <= strArr.length - 1 ; j++){ if(strArr[i] < strArr[j]){ temp = strArr[j]; strArr[j] = strArr[i]; strArr[i] = temp; } } } for(int i = 0; i < strArr.length; i++){ System.out.print(strArr[i]); } } }
选择排序的思路是:每次拿出前面的一个数跟后面的其它的数依次作比较