鱼C论坛

 找回密码
 立即注册
查看: 3811|回复: 3

求大神们帮我看看这个代码是如何实现排序的

[复制链接]
发表于 2013-10-28 18:45:03 | 显示全部楼层 |阅读模式
1鱼币
package grammar;

import java.util.BitSet;
import java.util.Random;

public class LearnGrammar {
        public static void main(String[] args){
               
             int[] a = new int[100];
            init(a);
            disp(a);
           System.out.println();
           sort(a);
        }

                private static void sort(int[] a) {
                        // TODO Auto-generated method stub
                        BitSet bs = new BitSet(100);
                for (int i = 0; i < 80; i++) {
                                bs.set(a[i],true);
                        }
                for (int i = 0; i < bs.length(); i++) {
                                if(bs.get(i))
                                        System.out.printf("%d ", i);
                        }
        }   
                private static void disp(int[] a) {
                        // TODO Auto-generated method stub
                        for (int i = 0; i < 80; i++) {
                                System.out.printf("%d ", a[i]);
                        }
                }
                private static void init(int[] a) {
                        // TODO Auto-generated method stub
                         for(int i = 0;i < a.length; i++){
                            a[i] = i + 1;
                    }
                         Random random = new Random();
                         for (int i = 0; i < 80; i++) {
                                int index = random.nextInt(100 - i) + i;
                                swap(a,index,i);
                        }
                }

                private static void swap(int[] a, int index, int i) {
                        // TODO Auto-generated method stub
                         int temp = a[index];
                         a[index] = a[i];
                         a[i] = temp;
                }
}


最佳答案

查看完整内容

这一句就会进行排序。 bs.set(a,true); 其实这一句还可以直接简写成bs.set(a); 具体的你查一下官方的文档吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-28 18:45:04 | 显示全部楼层
这一句就会进行排序。
bs.set(a[i],true);
其实这一句还可以直接简写成bs.set(a[i]);

具体的你查一下官方的文档吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-29 20:02:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-23 17:03:57 | 显示全部楼层
挖坟,这个只适用于 纯数字的排序
如图所示
QQ截图20161223170252.png

评分

参与人数 1鱼币 +5 收起 理由
零度非安全 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 14:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表