首页 > 代码库 > 算法题:找出一个数组中依次最大的k个元素
算法题:找出一个数组中依次最大的k个元素
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; } }
算法题:找出一个数组中依次最大的k个元素
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。