package com.interview.algorithms.sort; import java.util.BitSet; /** * Created_By: stefanie * Date: 14-7-8 * Time: 下午9:02 * * Int sort in O(N), suitable for tensive and non-duplicate int array, such as telphone number, license number, etc. */ public class C8_5_BitSort { public static int[] sort(int[] array){ int max = Integer.MIN_VALUE; for(int i = 0; i < array.length; i++) { if(array[i] > max) max = array[i]; } BitSet bitset = new BitSet(max); for(int i = 0; i < array.length; i++) bitset.set(array[i]); int[] sorted = new int[array.length]; int j = 0; for(int i = 0; i <= max; i++){ if(bitset.get(i)) sorted[j++] = i; } return sorted; } }