zoukankan      html  css  js  c++  java
  • 第5题:查找最小的K个元素

    欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44752297

    第5题:输入n个整数,输出其中最小的K个。(数组)
    例如输入1,2,3,4,5,6,7,8 这8个数字,则最小的4个数字为1,2,3,4

    此处就是排序——冒泡排序、快排、选择排序等,择一进行修改应该就可以了。

    代码:

    package test005;
    
    /**
     * Created by cq on 2015/3/30.
     * 第5题:输入n个整数,输出其中最小的K个。(数组)
     *       例如输入1,2,3,4,5,6,7,8 这8个数字,则最小的4个数字为1,2,3,4
     */
    public class FindKMin {
        //采用选择排序查找最小的K个元素
        public static void findKMin(int[] arr, int k){
            k = (arr.length > k)?k:arr.length;
            for (int i=0 ; i<k ; i++){
                int iMinIndex = i;
                for (int j=i+1 ; j<arr.length ; j++){
                    if (arr[j] < arr[iMinIndex]){
                        iMinIndex = j;
                    }
                }
                //将第i小的值交换到数组的位置i
                if (iMinIndex != i){
                    arr[i] ^= arr[iMinIndex];
                    arr[iMinIndex] ^= arr[i];
                    arr[i] ^= arr[iMinIndex];
                }
            }
        }
        //打印数组前K个元素
        public static void printKValue(int[] arr, int k){
            k = (arr.length > k)?k:arr.length;
            for (int i=0 ; i<k ; i++){
                System.out.print(arr[i]+" ");
            }
        }
        public static void main(String[] args){
            int[] arr = {22,2,12,4,11,6,7,8};
            FindKMin.findKMin(arr,4);
            FindKMin.printKValue(arr,4);
        }
    }

    执行结果:

    Connected to the target VM, address: '127.0.0.1:62070', transport: 'socket'
    Disconnected from the target VM, address: '127.0.0.1:62070', transport: 'socket'
    2 4 6 7 
    Process finished with exit code 0
  • 相关阅读:
    团队二阶段冲刺个人工作总结9
    团队二阶段冲刺个人工作总结8
    团队二阶段冲刺个人工作总结7
    团队二阶段冲刺个人工作总结6
    PSP总结报告
    第十三周例行报告
    对团队成员公开感谢博客
    附加作业 软件工程原则的应用实例分析
    第十二周例行报告
    第十一周例行报告
  • 原文地址:https://www.cnblogs.com/read-the-spring-and-autumn-annals-in-night/p/12041991.html
Copyright © 2011-2022 走看看