java冒泡排序
思路一:第一层循环先确定总共要循环的次数, 由于每次只能得到一个最大的或者最小的,所以外循环的次数就是 长度-1。第二层循环是得到这个最小值所需要的比较次数,比如1,2,3,4只需要两两比较三次,所以是长度-i-1.
public static void maopao(int[] li){ // 冒泡排序 // 先排出大的 for (int i = 0; i < li.length-1; i++) { for (int j = 0; j < li.length-1-i; j++) { if (li[j]>li[j+1]){ int temp = li[j]; li[j] = li[j+1]; li[j+1] = temp; } } } // 先排出小的 for (int i = 0; i < li.length-1; i++) { for (int j = i+1; j < li.length; j++) { if (li[i]>li[j]){ int temp = li[i]; li[i] = li[j]; li[j]=temp; } } } for (int i = 0; i < li.length; i++) { System.out.print(li[i]+"\t"); } } public static void main(String[] args) { int[] li = {56,21,78,-1,-78,0,88,88,3,2,66}; maopao(li); }
输出为-78 -1 0 2 3 21 56 66 78 88 88