编程珠玑_磁盘中无重复大量整数数据排序限制内存借助位图

来源:互联网 发布:大数据选股app 编辑:程序博客网 时间:2024/06/05 07:44
/** *  * @author zhangguangsen *无重复大量数据排序 借助位图思想(本程序用的是Byte) *例如 从磁盘文件中导入10000条无重复电话号码集  然后经过程序排序完成后导回磁盘文件中 *该程序只是一个核心思想的Demo, * */public class MagicSort {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int []a = new int [n];for(int i = 0;i< n;i++){a[i] = sc.nextInt();}magicSort(a,n);}public static void magicSort(int[] a,int n) {int max = a[0];for(int j = 0;j<n;j++)max = max<a[j]?a[j]:max;byte[]bit = new byte[max+1]; //用位图表示这个集合,初始化b位图全部置0,for(int i = 0;i<bit.length;i++)bit[i] = 0;//a集合中的数值与位图bit的下标相对应for(int i = 0;i<a.length;i++)bit[a[i]] = 1;//输出排好的集合for(int i = 0;i<bit.length;i++)if(bit[i]==1)System.out.println(i);}}

0 0
原创粉丝点击