Rainbow sort
Rainbow sort Notes: boundary condition is tricky for me public class RainbowSort{ public int[] rainbowSort(int[] array){ if(array == null || array.length <= 1){ return array; } int i = 0; int j = 0; int k = array.length - 1; while(j <= k){ // always confused about the boundary if(array[j] == -1){ swap(i++, j++, array); }else if(array[j] == 0){ j++; }else{ // array[j] == 1 swap(j, k--, array); } } return array; } private void swap(int i, int j, int[] array){ int tmp = array[i]; array[i] = array[j]; array[j] = tmp; } }
posted on 2018-09-20 18:04 猪猪🐷 阅读(102) 评论(0) 收藏 举报
浙公网安备 33010602011771号