zoukankan      html  css  js  c++  java
  • 对公司所有员工的年龄排序

    题目: 对公司所有员工的年龄排序,总共几万人,要求实现一个排序算法,要求时间效率为O(n),可以使用辅助内存,只允许使用常量大小的辅助空间

    分析:员工的年龄假设为0~10,故辅助数组为timeOfAge[10],保存每个年龄出现的次数

    public class SortAges {
        public static void sortAge(int age[]){
            final int oldAge=10;
            int timesOfAge[]=new int[oldAge];
            int len=age.length;
            //timeofage保存重复出现的次数
            for (int i = 0; i <len ; i++) {
                timesOfAge[age[i]]++;
            }
            int index=0;
            for (int i = 0; i <oldAge ; i++) {
                for (int j = 0; j <timesOfAge[i] ; j++) {
                    age[index]=i;
                    index++;
                }
            }
        }
    
        public static void main(String[] args) {
            int[] ages=new int[]{2,4,3,2,7,5,3};
            sortAge(ages);
            for (int i = 0; i <ages.length ; i++) {
                System.out.println(ages[i]);
            }
        }
    }

      

  • 相关阅读:
    PHP
    PHP
    密码修改机制
    PHP
    PHP
    PHP
    PHP
    Java并发编程:进程和线程的由来(转)
    Java获取文件大小的正确方法(转)
    J2EE开发中常用的缓存策略
  • 原文地址:https://www.cnblogs.com/yeleia/p/9999974.html
Copyright © 2011-2022 走看看