用JAVA语言编译:数组中包含n个整数,从其中找出k个最小的数,写出你能想到的最快的方法!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JAVA语言编译:数组中包含n个整数,从其中找出k个最小的数,写出你能想到的最快的方法!!!相关的知识,希望对你有一定的参考价值。
我是初学者,不要编太难哦,谢谢各位大侠!
最快k*O(n)~O(n),将前K个数放入一个k的数组中,按序放,对K+1到N的数,依次如果比K数组总的小,将K中最大的取出,放入最小的数,一直维持K个,最后就是最小的K个。
import java.util.Arrays;
/**先给数值里的值进行从小到大排序,取从0到k-1索引的数组值
* @创建一个数组,包含11个元素,求5个最小的数
* @author Administrator
public class ArrayTest
public static void main(String[] args)
//最小元素的个数
int k=5;
//创建一个数组,
int[] arr = 1,3,45,33,67,12,88,11,46,32,89;
//操作数组的工具Arrays,sort()方法自动排序,由小到大
Arrays.sort(arr);
for(int i=0;i<k;i++)
System.out.println(arr[i]);
扩展资料:
此处数组是程序中声明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的 Index 属性规定的。变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。
参考资料来源:百度百科-数组
参考技术A 最快k*O(n)~O(n),将前K个数放入一个k的数组中,按序放,然后对K+1到N的数,依次如果比K数组总的小,将K中最大的取出,放入最小的数,一直维持K个,最后就是最小的K个 参考技术B import java.util.Arrays;/**先给数值里的值进行从小到大排序,然后取从0到k-1索引的数组值
* @创建一个数组,包含11个元素,求5个最小的数
* @author Administrator
*
*/
public class ArrayTest
public static void main(String[] args)
//最小元素的个数
int k=5;
//创建一个数组,
int[] arr = 1,3,45,33,67,12,88,11,46,32,89;
//操作数组的工具Arrays,sort()方法自动排序,由小到大
Arrays.sort(arr);
for(int i=0;i<k;i++)
System.out.println(arr[i]);
参考技术C int[] n=5,4,6,3,2;//这里的数量你自己定
Arrays.sort(n);//对n个数排序就可以了
int k=3;//这里要取其中的3个
for(int i=0;i<k;i++)
System.out.println(n[i]);//输出最小的k个整数
参考技术D 用冒泡排序 或者插入排序 或者 选择排序 这几个基本的排序都可以实现上述的问题
java 里面提供了 一个自带的排序功能
比如:int [] a=1,1,2,3,4,44,5;
直接 Arrays.sort(a);即可 要想打印出即对排序后的a数组进行遍历
以上是关于用JAVA语言编译:数组中包含n个整数,从其中找出k个最小的数,写出你能想到的最快的方法!!!的主要内容,如果未能解决你的问题,请参考以下文章
C语言 N为正整数,计算从1到N的所有整数中包含数字1的个数
2021-12-19:找到所有数组中消失的数字。 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums(