日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3秒搞定!~~ 一亿数据获取前100个最大值

發布時間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3秒搞定!~~ 一亿数据获取前100个最大值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3秒搞定!~~ 一億數據獲取前100個最大值

整合網絡上的算法。 根據我的思路。計算一億個數字中最大的前100個值。

昨晚效率還是很低。 今天搞的算法。 只需要3秒鐘。 獲取前100個 前1000個 速度都非常快。?


算法原理:

把一億個數字的前100個 首先放入數組。 然后把最小值放在ary[0]。

然后再,循環100到一億 之間的。 每次循環判斷當前數字是否大于ary[0]

?當大于時,當前數字放入ary[0] 并再次重構數組最小值進入ary[0]? 以此類推 。

當循環完這一億個數字后。 最大的前100個數字就出來了。


源碼分享地址:http://download.csdn.net/download/yjflinchong/4275241


騰訊面試題:一億數字獲取前100個最大的數字辦法

比較笨的辦法。效率有點低。 只是實現了功能。 期待牛人的算法。

我弄了個最佳方案 http://blog.csdn.net/yjflinchong/article/details/7533972??? 3秒就搞定了

一億數字獲取前100個最大的數字? 這個方案需要700秒

///http://blog.csdn.net/yjflinchong/article/details/7532018

package com.my.util;


import java.io.*;
import java.util.*;
import java.net.*;

public class WebTest {

?? ?public static int last = 333333333;
?? ?public static int max = 100000000;//數據總數
?? ?public static int sp = 1000000;//分割數據條數
?? ?public static int[] ary = new int[100];
?? ?
?? ?
?? ?public static void main(String[] args) {
?? ??? ?splitFile();
?? ??? ?Date d1 = new Date();
?? ??? ?find("d:/file/file.txt");
?? ??? ?System.out.println(Arrays.toString(ary)+"========");
?? ??? ?Date d2 = new Date();
?? ??? ?System.out.println(d2.getTime()-d1.getTime());
?? ?}
?? ?
?? ?
?? ?public static void splitFile(){
?? ??? ?StringBuffer str = new StringBuffer("");
?? ??? ?int num = 1;
?? ??? ?for (int i = 1; i < (max+1); i++) {
?? ??? ??? ?str.append(i+"\t\n");
?? ??? ??? ?if(i%1000000==0){
?? ??? ??? ??? ?appendToFile("d:/file/file.txt", str.toString());
?? ??? ??? ??? ?str = new StringBuffer("");
?? ??? ??? ??? ?num++;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?appendToFile("d:/file/file.txt", last+"");
?? ?}

?? ?public static void appendToFile(String file,String text){
?? ??? ?try
?? ??? ?{
?? ??? ??? ?FileWriter fw =new FileWriter(file,true);
?? ??? ??? ?BufferedWriter bw=new BufferedWriter(fw);
?? ??? ?bw.write(text);
?? ??? ?bw.flush();
?? ??? ?}catch (Exception e) {
?? ??? ?} ?
?? ??? }? ?
?? ??? ?public static String readFile(String path){
?? ??? ??? ? StringBuffer str = new StringBuffer("");
?? ??? ??? ?try {
?? ???????????? String line = null;
?? ?????????? ?
?? ???????????? BufferedReader reader = new BufferedReader(new FileReader(path));
?? ???????????? while ((line = reader.readLine()) != null) {
?? ??????????? ??? ?str.append(line);
?? ???????????? }
?? ???????????? reader.close();
?? ???????? } catch (Exception e) {
?? ???????????? e.printStackTrace();
?? ???????? }
?? ???????? return str.toString();
?? ??? ?}
?? ??? ?public static void find(int[] bak){
?? ??? ??? ?for (int i = 0; i < bak.length; i++) {
?? ??? ??? ??? ?ary[0] = bak[i];
?????????? ??? ?sort(ary);
?? ??? ??? ?}
?? ??? ?}///http://blog.csdn.net/yjflinchong/article/details/7532018
?? ??? ?public static void find(String path){
?? ??? ??? ?try {///http://blog.csdn.net/yjflinchong/
?? ???????????? String line = null;
?? ???????????? BufferedReader reader = new BufferedReader(new FileReader(path));
?? ???????????? while ((line = reader.readLine()) != null) {
?? ??????????? ??? ?ary[0] = Integer.parseInt(line.trim());
?? ??????????? ??? ?sort(ary);
?? ???????????? }
?? ???????????? reader.close();
?? ???????? } catch (Exception e) {
?? ???????????? e.printStackTrace();
?? ???????? }
?? ??? ?}
?? ??? ?///http://blog.csdn.net/yjflinchong/article/details/7532018
?? ??? ?public static void sort(int[] array){ ?
?? ???????? for(int i = 0; i < array.length - 1; i++){ ?
?? ???????????? //當前值當作最小值 ?
?? ???????????? int min = array[i]; ?
?? ???????????? for(int j = i+1; j < array.length; j++){ ?
?? ???????????????? if(min>array[j]){ ?
?? ???????????????????? //如果后面有比min值還小的就交換 ?
?? ???????????????????? min = array[j]; ?
?? ???????????????????? array[j] = array[i]; ?
?? ???????????????????? array[i] = min; ?
?? ???????????????? } ?
?? ???????????? } ?
?? ???????? } ?
?? ???? } ?
?? ??? ?
?? ??? ?

}



一億個數字判斷其中相同數字的辦法

一億個數字判斷其中相同數字的辦法

package com.my.util;

//http://blog.csdn.net/yjflinchong
public class Test {
?? ?
?? ?int fnum = 21000000;
?? ?
?? ?public static void main(String[] args) {
?? ??? ?Test t = new Test();
?? ??? ?t.find();
?? ?}
?? ?
?? ?
?? ?public void find() {
?? ??? ?int total = 100000000;
?? ??? ?int size = total%32==0?total/32:total/32+1;
?? ??? ?int [] mBits=new int[size];
?? ??? ?for(int i=0;i<total;i++) {
?? ??? ??? ?int num = getNum(i);
?? ??? ??? ?if(get(mBits,num)) {
?? ??? ??? ??? ?System.out.println(num);
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ? ?? ?set1(mBits,num);
?? ??? ?}
?? ?}
?? ?//http://blog.csdn.net/yjflinchong
?? ?public int getNum(int i) {
?? ??? ?//設定模擬重復的那個數字 fnum
?? ??? ?if(i==(fnum+1)){
?? ??? ??? ?i--;
?? ??? ?}
?? ??? ?return i;
?? ?}
?? ?public void set1(int [] mBits, int pos) { ?
?? ??? ?int index = ( int )Math.floor(pos/32f);
?? ??? ?mBits[index] = mBits[index] | (1 <<(31-pos%32 ));
?? ?}
?? ?public boolean get(int [] mBits, int pos){ ?
?? ??? ?int index = ( int )Math.floor(pos/32f);
?? ??? ?return mBits[index] == (mBits[index] | 1 <<(31-pos% 32 ));
?? ? }

}



總結

以上是生活随笔為你收集整理的3秒搞定!~~ 一亿数据获取前100个最大值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 538国产视频| 91l九色lporny | 91成人一区二区三区 | 97公开视频 | 久久久精品一区二区 | 韩国三级hd中文字幕有哪些 | 午夜精品一区二区三区免费视频 | 亚洲成人黄色av | 日本三级韩国三级美三级91 | 成年人毛片视频 | 蜜桃91精品入口 | 国产永久免费视频 | 成人小网站 | 中文字幕人妻一区二 | 在线免费观看毛片 | 熟妇人妻精品一区二区三区视频 | 69热在线 | av最新版天堂资源在线 | 少妇被躁爽到高潮无码文 | 熟妇高潮一区二区 | 亚欧精品在线观看 | 黑人vs亚洲人在线播放 | 99碰碰 | 亚洲制服在线观看 | 麻豆社| 亚洲成a人 | 国产三级大片 | 国产日韩亚洲欧美 | 亚洲理论电影在线观看 | 性色av无码久久一区二区三区 | 国产日韩一区二区在线 | 欧亚一区二区三区 | 少妇高潮毛片 | 99久久精品免费看国产交换 | 在线免费看mv的网站入口 | 久久亚洲一区二区 | av丝袜在线 | 亚洲少妇一区二区 | 国产50页| 精品国产乱码久久久久久浪潮 | 尤物视频在线观看 | av在线电影观看 | 国产综合激情 | 极品久久久久久 | 欧美精品久久96人妻无码 | 麻豆视频在线看 | 国产91边播边对白在线 | 久久国产精品久久久久久电车 | 人妻一区二区三区 | 成年人在线免费看 | 欧美日韩激情视频 | 蜜臀在线一区二区三区 | 久久中文字幕视频 | 亚洲精品欧美 | 婷婷色在线观看 | 国产美女引诱水电工 | 成人自拍av| 操综合| 国产不卡在线视频 | 中文字幕国产一区 | 欧美人妻少妇一区二区三区 | 日韩在线观看中文字幕 | 91免费影片 | 日韩精品久 | 日韩一级特黄 | 黄a大片| 久久久久久久久久国产 | 神马午夜在线观看 | 亚洲a影院 | 狠狠干影院 | 91老女人 | 伊人久久青青 | 空姐吹箫视频大全 | 中文字幕第7页 | 自拍欧美亚洲 | 少妇名器的沉沦 | 亚洲欧洲日本一区二区三区 | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 青青操精品 | 亚洲深夜av | 91超碰在线播放 | 黄色片上床 | 国产成人无码精品 | 午夜影院色 | 视频一区免费 | 国产高清视频在线播放 | 欧美日韩激情在线一区二区三区 | 国精产品乱码一区一区三区四区 | 青青青手机视频在线观看 | 国产欧美综合一区 | 国产精品日韩在线观看 | 4438x五月天 日吊视频 | 日韩av在线直播 | 久久久久久久久久久久 | 天堂中文在线观看 | 婷婷91| 成人a√| 亚洲激情视频小说 | 91资源在线播放 |