剑指offer-30:最小的k个数
来源:互联网 发布:网络评书解放战争 编辑:程序博客网 时间:2024/04/29 14:25
package partation;import java.util.Scanner;/** * 输入n个整数,找出其中最小的k个数。 * 例如:输入4、5、1、6、2、7、3、8,最小的4个数字为1、2、3、4 * 基本思路:把输入的n个数排序,则排序后最前面的k个数就是最小的k个数。时间复杂度为O(nlogn) * 解法一:O(n)的算法,当可以修改输入的数组时候可用。分治法。 * Description: [类描述] * @author summ * @Version * @Created at 2014-8-5 * @Modified by summ on 2014-8-5 */public class GetLeastNumbers {private static void getLeastNumbers(int[] input, int[] output, int i,int j, int k) {if (input == null || i > j) {return;}int pivot = partation(input , i, j);if (pivot != k-1) {if(pivot > k-1) {pivot = partation(input , i, pivot-1);} else {pivot = partation(input , pivot+1, j);}}for (int l = 0; l < output.length; l++) {output[l] = input[l];}}//分治法思想,将一个无序数组分成两个子序列,左边序列小于右边序列private static int partation(int[] array, int i, int j) {int low = i;int high = j;int temp = array[low];while(low < high) {while(temp <= array[high] && low < high) {high--;}array[low] = array[high];while(temp >= array[low] && low < high) {low++;}array[high] = array[low];}array[low] = temp;return low;}/** * @param args */public static void main(String[] args) {int k = 5;//输入函数Scanner sc = new Scanner(System.in);int[] input = new int[8];int[] output = new int[k];for (int i = 0; i < 8; i++) {input[i] = sc.nextInt();}//int[] input = {4,5,1,6,2,7,3,8};getLeastNumbers(input,output,0,input.length-1,k);for (int i = 0; i < output.length; i++) {System.out.print(output[i] + " ");}}}
0 0
- 剑指offer-30:最小的k个数
- 剑指offer-30 最小的K个数
- 剑指offer 30 - 最小的k个数
- 剑指Offer-30-最小的k个数
- [剑指offer:30]最小的k个数
- 剑指offer 30 最小的k个数
- 剑指offer:最小的k个数
- 【剑指offer】最小的k个数
- 最小的k个数(剑指offer)
- 剑指offer--最小的K个数
- 剑指Offer之 - 最小的k个数
- 剑指offer之最小的k个数
- 《剑指offer》最小的K个数
- 【剑指Offer】最小的K个数
- 剑指offer—最小的K个数
- 剑指offer:最小的K个数
- 【剑指offer】之最小的k个数
- 剑指offer 29 最小的k个数
- PhoneGap:JS跨域请求
- retian详解
- 在C语言中调用Unix Shell脚本。
- 什么是VPN协议
- 独立开发者经验分享
- 剑指offer-30:最小的k个数
- Moon Game
- HDU 1232 畅通工程
- android--自定义ViewGroup
- maven3+eclipse搭建webAPP企业级实战《一》
- 查看、修改Linux时区与时间
- 编写高质量JAVA程序代码的建议
- JDeveloper启动时不能创建jvm实例
- iframe页面和父页面之间元素查找的方法