博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法题:找出一个数组中依次最大的k个元素
阅读量:5286 次
发布时间:2019-06-14

本文共 1127 字,大约阅读时间需要 3 分钟。

package arithmetic;import java.util.Arrays;/** * 找出一个数组中依次最大的k个元素 * @author SHI */public class FindMaxFigure {    public static void main(String[] args) {        int[] a=new int[]{1,5,-1,8,0,2};        System.out.println(Arrays.toString(findBigFigure(a, 3)));    }        /**     * 想法:找到一个最大的元素之后,就依次存放到数组的最前面去,直到满足k个为止     * @param a  原始数组     * @param k       * @return     */    public static int[] findBigFigure(int[] a,int k) {        int[] temp = new int[k];        int m = 0;        int index = 0;                for (; index < k; index++) {            int max = a[index];//假设数组中的某个元素是最大的(这里每循环依次,取得的数组元素下标依次是0,1,2...)            int flag = 0;                        for (int j = index+1; j < a.length; j++) {                if(max < a[j]) {                    max = a[j];                    flag = j;//保存找到的最大数字的下标                }            }            //将最大数字依次交换到数组的最前面            int t = a[index];            a[index] = a[flag];            a[flag] = t;                        //将找到的数保存到数组中            temp[m++] = max;        }                return temp;    } }

转载于:https://www.cnblogs.com/shi-blog/p/4254368.html

你可能感兴趣的文章
优雅地书写回调——Promise
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
MetaWeblog API Test
查看>>
c# 文件笔记
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
线程池的概念
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>