存储有[0,n)的数组,数组长度为len。只能交换数组里n和0的位置进行排序.
输入 数组a为:{3,4,2,5,1,0,9,7,8,6}
输出 数组a为:{0 1 2 3 4 5 6 7 8 9}
public class test003 {
public static void main(String[] args) {
int[] a = new int[]{3,4,2,5,1,0,9,7,8,6};
sort(a, a.length);
for(int i=0; i<a.length; i++){
System.out.print(a[i]+" ");
}
}
private static void sort(int[] a, int len){ for(int i=0; i<len; i++){ swap_with_zero(a, len, i,a[i]); swap_with_zero(a, len, i,i); } } private static void swap_with_zero(int[] a, int len, int i, int num) { if(a[i] == num){ a[i] =0; }else if(a[i] == 0){ a[i] =i; } }
}
欢迎交流指正~