java-JAVA实现:一个数组里有1000个数,依次输出最大的10个数

问题描述

JAVA实现:一个数组里有1000个数,依次输出最大的10个数

刚接触JAVA,求各位前辈解答...............

解决方案

 Random random = new Random();
        List<Integer> item = new ArrayList<Integer>();
        for (int i = 0; i < 1000; i++) {
            //System.out.println(Math.abs(random.nextInt()) % 1000);
            item.add(Math.abs(random.nextInt()) % 1000);
        }
        Collections.sort(item);
        for (int i = item.size()-1; i >= item.size()-10; i--) {
             System.out.println(item.get(i));
        }

解决方案二:

public static void main(String[] args) {
int[] array = new int[1000];
for (int i = 0; i < array.length; i++) {
array[i] = new Random().nextInt(10000);
}
for (int i = 0; i < 100; i++) {
Arrays.sort(array);
for (int j = 0; j < array.length; j++) {
array[j] = array[array.length - j - 1];
}
for (int j = 0; j < 10; j++) {
System.out.println(array[j]);
}
if (array.length > 10) {
System.arraycopy(array, 10, array, 0, array.length - 10);
}
}
}

解决方案三:

定义一个数组存储这1000个数,先对这1000个数进行由大到小排序,然后输出数组的前十个数。

解决方案四:

这个和使用哪种语言的关系不大,这是数据结构的内容,可以有很多种查询方法,你可以看看数据结构里边的查询方式

解决方案五:

1、这是一个基本的排序问题,把1000个数按从大到小的顺序排序,之后输出前十个,1000个数可以采用时间复杂度较小的排序算法,快排或者合并;
2、单纯的考虑输出10个数,可以建立一个大小为10的数组并对数组排序,之后遍历1000个数,将数组中最小的数和遍历到的数字进行大小比较,数组
数字大则跳过,小则替换;直至全部遍历结束,之后输出数组就行。

解决方案六:

解决方案七:

最fancy的做法肯定是用introduction to algorithm 那本书里面的determinic selection 方法。可以达到O(n)的时间复杂度。比其他需要排序的方法O(nlogn)还是要快的。

解决方案八:

可以排序后直接输出最大的十个

解决方案九:

大量数据输出其中最大的几个数用堆排序

解决方案十:

因为数组,所以几种经典的排序方式,例如冒泡排序

例:
for (int i = 0; i < unsorted.Length; i++)
{
for (int j = i; j < unsorted.Length; j++)
{
if (unsorted[i] > unsorted[j])
{
int temp = unsorted[i];
unsorted[i] = unsorted[j];
unsorted[j] = temp;
}
}
}
排序后再输出前十位

时间: 2025-01-21 09:45:40

java-JAVA实现:一个数组里有1000个数,依次输出最大的10个数的相关文章

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

Java中打乱一个数组的2种公平算法分享_java

公平算法,打乱数组 这是前几天面试的时候遇见的一道题目,看到这个题首先想到了洗牌程序: 方法一:洗牌程序原理 在java.util包中的Collections类中的 shuffle方法,现在手工实现以下代码如下: package test.ms; import java.util.Random; public class Redistribute2 { public static void main(String[] args) { //define the array int[] s = {1

递归原理-java 递归 有一个数组 1,2,2,3,5 用java打印出所有不同的排列顺序

问题描述 java 递归 有一个数组 1,2,2,3,5 用java打印出所有不同的排列顺序 有一个数组 1,2,2,3,5 用java打印出所有不同的排列顺序:如12235,12325,13225

一个ArrayList里是否可以添加不同的类,一个数组里是否可以添加不同类

问题描述 一个ArrayList里是否可以添加不同的类,一个数组里是否可以添加不同类 解决方案 package com.zyn.iteye;import java.util.ArrayList;import java.util.List;public class ArrayListTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubList<Obje

c# 关于 Microsoft.Office.Interop.Excel.Worksheet 如何把内容取到一个数组里,在线等

问题描述 c#关于Microsoft.Office.Interop.Excel.Worksheet如何把内容取到一个数组里,在线等现在要做一个excel校验问题,因为牵扯到版本,用2007生成的excel用Olecommand打不开,所以考虑还是用excel自带com控件打开excel,将其值导入到数组里,进行校验,但是无法获得excel的行和列,感觉它的行和列,都是固定的数值,好像是几万吧.谁知道他有没有自带属性或者方法可以获得???谢谢在线等 解决方案 解决方案二:沒做過這樣的.

怎么算一个数组里含不含某个元素呀?

问题描述 比如:string[]str1=newstring[]{"100","200"};stringstr2="100";怎么知道str1里边有没有str2元素,1.0的SDK谢谢 解决方案 解决方案二:foreach(stringsinstr1){if(s==str2){messagebox.show("Y");break;}}解决方案三:foreachstr3asstringinstr1Ifstr3=str2thenf

怎么把输出的单词存放到一个数组里

问题描述 importjava.io.*;importjava.awt.*;importjava.io.File;importjava.awt.event.*;importjava.util.Vector;classWordStatistic{VectorallWords,noSameWord;WordStatistic(){allWords=newVector();noSameWord=newVector();}publicvoidwordStatistic(Filefile){try{Ran

我的Java开发学习之旅------&amp;gt;使用循环递归算法把数组里数据数组合全部列出

面试题如下:把一个数组里的数组合全部列出,比如1和2列出来为1,2,12,21. (面试题出自<Java程序员面试宝典>) 代码如下: import java.util.Arrays; import java.util.LinkedList; import java.util.List; /** * 把一个数组里的数组集合全部列出,比如1和2列出来为1,2,12,21 */ public class ListAll { public static void main(String[] args

C语言将数组中元素的数排序输出的相关问题解决_C 语言

 问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个.例如输入数组{32,  321},则输出这两个能排成的最小数字32132.请给出解决问题的算法,并证明该算法.       思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可.这里注意的是字符串的比较函数需要重新定义,不是比较a和b,而是比较ab与 ba.如果ab < ba,则a < b:如果ab > ba,则a > b:如果ab = ba,则a = b.比