文档章节

扑克牌的排序问题

朱方圆
 朱方圆
发布于 2016/08/24 22:25
字数 292
阅读 23
收藏 0
import java.util.HashMap;

/**
 * Created by kisstheraik on 16/8/24.
 * Description 对扑克牌进行排序,Poker相当于一种字符串,但是两次的桶不一样,一次是13个一次是4个,需要进行两次桶排序
 */
public class PokerSort {

    static class Poker{
        String suit;
        String rank;
        
        public Poker(String suit,String rank){
            this.suit=suit;
            this.rank=rank;
        }
        public String toString(){
            return "["+suit+" "+rank+"]";
        }
        //处理桶的关系
        public int get(int index){

            HashMap<String,Integer> h=new HashMap<>();

            h.put("2",1);
            h.put("3",2);
            h.put("4",3);
            h.put("5",4);
            h.put("6",5);
            h.put("7",6);
            h.put("8",7);
            h.put("9",8);
            h.put("10",9);
            h.put("J",10);
            h.put("Q",11);
            h.put("K",12);
            h.put("A",13);
            h.put("♣",1);
            h.put("♦",2);
            h.put("♥",3);
            h.put("♠",4);

            if(index==0)
                return h.get(rank);
            else return h.get(suit);


        }

    }

    public static void main(String[] args){

        int NUM=30;
        Poker[] list={new Poker("♠","A"),new Poker("♥","2"),new Poker("♥","A"),new Poker("♥","3"),new Poker("♦","J"),new Poker("♦","A")};

        sort(list);

        for (Poker p:
             list) {
            System.out.print(p.toString()+" ");
        }
    }

    public static void sort(Poker [] list){


        int R=14;
        int length=list.length;
        Poker[] tmp=new Poker[length];
        for(int i=0;i<2;i++){
            //第一次循环,根据数字排序

            int[] count=new int[R+1];


            for(int j=0;j<length;j++)
                count[list[j].get(i)+1]++;

            for(int j=0;j<R;j++)
                count[j+1]+=count[j];

            for(int j=0;j<length;j++)
                tmp[count[list[j].get(i)]++]=list[j];

            for(int j=0;j<length;j++)
                list[j]=tmp[j];
        }

    }
}

 

© 著作权归作者所有

朱方圆
粉丝 2
博文 24
码字总数 20023
作品 0
南京
私信 提问
大妈也能看懂的大数据分布式计算图解

作者介绍 卢亮,资深软件研发工程师,擅长业务系统建模与架构分析,在分布式架构和大数据技术方面有深入的理论研究和实践经验。 个人博客:www.leonlu.cc 本文是一篇科普性质的文章,希望能通...

卢亮
2018/05/24
0
0
2016年8月6日 工作计划

林锐强 昨日完成 给污染物加上异常报警上限和下限,为异常值报警作支持 优化报表测量值状态的显示,改为在后端判别,降低前端页面的复杂度 处理供水数据时间的问题,客户要5分钟整分钟的数据...

土匪强
2016/08/06
2
5
画扑克牌的JS库--Poker.JS

Poker.JS 演示: 演示1 演示2 Poker.JS是通过扩展HTML5 Canvas实现的画扑克牌的JS库。用户可以很容易地在img或canvas创建单个的扑克牌,或者直接在大canvas里画牌。 不使用外部图片 10K大小(...

Tairraos
2012/10/16
7K
2
iOS解码关于视频中带B帧排序问题

需求 在解码带B帧的视频编码码流中,由于B帧的存在,导致parse出来的数据时间戳本身不是连续的,因为B帧需要可能需要参考后面的帧.因此,解码完成后需要对码流解码做一个重排序 实现原理 首先分析...

小东邪啊
06/26
0
0
搞不来OSC的杯子,但搞到了禅道的杯子!嘎嘎,还有扑克牌~

禅道马克杯....还有两幅扑克牌!~~ 见图: 扑克牌...同事无聊摆了个圈...

loyal
2013/09/12
1K
20

没有更多内容

加载失败,请刷新页面

加载更多

技术分享 | MySQL 8.0:字符集从 utf8 转换成 utf8mb4

作者:胡呈清 整理 MySQL 8.0 文档时发现一个变更:默认字符集由 latin1 变为 utf8mb4。想起以前整理过字符集转换文档,升级到 MySQL 8.0 后大概率会有字符集转换的需求,在此正好分享一下。...

爱可生
13分钟前
2
0
不管单机还是集群的限流实现已经给你准备好了

限流算法 计数器算法 维护一个counter,规定在单位时间内counter的大小不能超过最大值,每隔固定时间就将counter的值置零。如果这个counter大于设定的阈值,那么系统就拒绝请求 漏桶算法 维护...

阿提说说
24分钟前
3
0
文件管理

通过CLI登录进行文件管理 .表示当前目录,..表示父目录,具有隐藏文件。支持缩写与TAB键补全 1、目录操作 pwd#打印工作目录 cd <directory>#改变工作目录 dir [/all][<directory>]#查看目录内...

悠悠子佩
26分钟前
3
0
Netty学习笔记(10)——Netty中的Channel组件

1. Channel的功能 1. 与NIO中的Channel一样,它实现了网络操作的抽象类,聚合了一系列的网络IO功能,包括读写数据、建立连接、关闭连接等功能。通过外观模式,将数据读写、连接建立与断开等操...

江左煤郎
30分钟前
2
0
二叉树的深度

从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 public int TreeDepth(TreeNode root) { return root == null ? 0 : 1 + Math.max(Tree...

Garphy
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部