自己写的一个冒泡排序和testcase贴出来一下。
在下面的冒泡排序里,用了一个boolean变量isfinalorder来判断数组是否达到正确的顺序(s升序排序),由于很多数组都是局部有序,增加这个变量可以提前判断数组是否达到有序状态,从而提高排序的效率。
在下面的冒泡排序里,用了一个boolean变量isfinalorder来判断数组是否达到正确的顺序(s升序排序),由于很多数组都是局部有序,增加这个变量可以提前判断数组是否达到有序状态,从而提高排序的效率。
public class bubblesort { public int[] sort(int[] arr){ for(int i=0; i<arr.length-1; i++){ boolean isfinalorder = true;//是否最终顺序 for(int j=0; j<arr.length-1-i; j++){ if(arr[j]>arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; isfinalorder = false; } } if(isfinalorder){ break; } } return arr; }}
public class sorttest extends testcase { public int[] getsortdatas(){ return new int[]{11,14,9,13,20,5,12,3,18,4,0,19,1,15,8,2,16,7,6,17,10}; } public void testbubblesort(){ bubblesort sorttool = new bubblesort(); int[] arr = getsortdatas(); system.out.print("排 序 前:"); printutils.printintarr(arr); int[] arr1 = sorttool.sort(arr); system.out.print("升序排序后:"); printutils.printintarr(arr1); }}