冒泡排序:
package Exercise; import java.util.Arrays; public class TestBubbleSort { public static void main(String[] args) { int[] a={3,1,6,2,9,0,7,4,5,8}; int temp=0; for(int i=0;i<a.length-1;i++){ //因为已经排好了i个了,所以只需要排length-i的数,-1是因为只需要排到倒数第二个,否则j+1会产生数组越界 for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } System.out.println("第"+i+"次排序的结果"+Arrays.toString(a)); } } }
运行结果:
可以观察到,在第四次该数组已经排好序,没有必要再进行后面的排序,所以应给予优化;可以采取设置一个flag变量,如果经历了交换,就将它设置为false