当前位置: 首页 > news >正文

下载源码就能建网站吗推广网站的文案

下载源码就能建网站吗,推广网站的文案,服装网站建设配色,成都发现6例阳性一 面试经典: 给你一个文件里面包含全国人民(14亿)的年龄数据(0~180),现在要你统计每一个年龄 有多少人? 给定机器为 单台2CPU2G内存。不得使用现成的容器,比如map等。&am…

  一 面试经典:

        给你一个文件里面包含全国人民(14亿)的年龄数据(0~180),现在要你统计每一个年龄   有多少人?
        给定机器为 单台+2CPU+2G内存。不得使用现成的容器,比如map等。(这一句可以忽略)
        在以上情况下你该如何以最高效的方法来解决这个问题?

试想下应该用什么,

        排序?(太耗内存,考虑时间复杂度,同时排序算法最高复杂度为O(nlogn))

        分布式?(例如hadoop的MapReduce的切开)-->大题小作,没必要

        答: 可以用数组。(开篇引题)

        实例代码:
package algorithm.array;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;import javax.imageio.stream.FileImageInputStream;public class AgeStas {public static void main(String[] args) throws Exception {String str = null;String fileName = "E:\\javacode\\Array\\age1.txt";InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName),"UTF-8");long start = System.currentTimeMillis();BufferedReader br = new BufferedReader(isr);int tot = 0 ;	//21亿int data [] = new int[200];while((str = br.readLine()) != null){		//一行一行的读 O(n)int age = Integer.valueOf(str);data[age] ++ ;tot ++ ;}//O(n) 14亿. 100万/秒 *1000 = 10亿 100~1000s之间 => 500s以下 60*8=480sSystem.out.println("总共的数据大小: " + tot);for(int i = 0 ; i < 200 ; i ++){//下标从0开始的System.out.println(i + ":" + data[i]);}//144239ms => 144sSystem.out.println("计算花费的时间为:" + (System.currentTimeMillis() - start) + "ms");}
}

       核心思想: 通过流的形式一行一行的读然后通过数组下标进行年龄各自累加。同时运行时间和电脑性能也有影响哦。一般100多秒差不多

       那么为什么使用数组呢?

        下标:数组最优一个特点。这里可以通下标表示成有意义的数据,不只是数据里面的标记,年龄和下标对应。

        随机访问:可以直接通过下标定位到数组中的某一个数据

 二 数组:

       1.定义 

        所谓数组,是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。int 的数组你就不能存float 也不能存double
数组是用于储存多个相同类型数据的集合。通常用Array表示,也称之为线性表

        2. 特点

        (1)数组是相同数据类型的元素的集合。
        (2)数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。内存地址
        (3)数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

      (4)数组是连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个非常重要的特性:随机访问。但有利就有弊,这两个限制也让数组的很多操作变得非常低效,比如要想在数组中删除、插入一个数据,为了保证连续性,就需要做大量的数据搬移工作。
随机访问的重要应用:查找,面试重点

        3.缺点

        缺点就是数组的插入与删除了,具体等会看数组代码,时间复杂度都是O(n).如果将一个数据插入到数组中的第k个位置,那么需要将k位置之后的所有数据后移。删除第N个位置的数据,那就需要将N后面的所有元素前移一位,刚好与插入相反。

        4.数组代码实现(crud+扩容)

package Array;/*** @author:Kevin* @create: 2023-08-12 11:06* @Description:*/public class Arraytest {private int size;		//数组的长度private int data[];private int index;		//当前已经存的数据大小public Arraytest(int size){		//数组的初始化过程this.size = size;data = new int[size];		//分配的内存空间{0,0,0,0,0}index = 0;}public void print(){System.out.println("index:" + index);for(int i = 0 ; i < size ; i++){System.out.print(data[i] + " ");}System.out.println();}public void insert(int loc,int n){		//时间复杂度 O(n);//TODO 这里判断需不需要扩容,如果插入的元素位置够的话就不需要扩容!!!if(index ++ < size){for(int i = size - 1; i > loc ; i --){	//为什么不能写size 0~size-1 如果loc是0 O(n),O(1)=>O(n)data[i] = data[i - 1];	//把数据往后移一个}data[loc] = n;}else {// 进行扩容操作int[] newData = new int[size * 2];for (int i = 0; i < loc; i++) {newData[i] = data[i];}newData[loc] = n;for (int i = loc; i < size; i++) {//这里注意,之所以是data[i]是因为数组下标从0开始,所以data[i]为插入元素的后一位newData[i + 1] = data[i];}data = newData;size = size * 2;index++;}}public void delete(int loc){	//O(n)for(int i = loc ; i < size ; i++){if(i != size - 1){		//怕越界所以加一个判断data[i] = data[i + 1];}else{data[i] = 0;			//默认为0 就是没存数据的}}index -- ;}public void update(int loc,int n){//O(1)data[loc] = n;}public int get(int loc){		//O(1)return data[loc];}public static void main(String[] args) {//ArrayListArraytest arraytest = new Arraytest(6);arraytest.insert(3,5);arraytest.print();}}

        

        三:数组与Arraylist怎么选择?

本质是一样的,都是数组。ArrayList是JDK封装了。不需要管扩容等操作
数组的话就要你全部操作


两者之间应该如何选用?:
不知道数据大小的肯定选ArrayList。
如果你知道数据的大小而且你又非常关注性能那就用数组。

数组最需要注意的就是越界:所以一定要多加判断,尤其是在开始和结束。测试的时候也一样注意头和尾。

所以对于开篇的那道算法题可以使用数组


文章转载自:
http://dinncosamaritan.zfyr.cn
http://dinncodimout.zfyr.cn
http://dinncoreproductive.zfyr.cn
http://dinncohaematophyte.zfyr.cn
http://dinncoprolific.zfyr.cn
http://dinncopicaninny.zfyr.cn
http://dinncohurling.zfyr.cn
http://dinncoransomer.zfyr.cn
http://dinncoplyer.zfyr.cn
http://dinncoscleroderma.zfyr.cn
http://dinncopentoxide.zfyr.cn
http://dinncocotinga.zfyr.cn
http://dinncofreakish.zfyr.cn
http://dinncoinsectile.zfyr.cn
http://dinncocrackly.zfyr.cn
http://dinncoruler.zfyr.cn
http://dinncokeno.zfyr.cn
http://dinncohii.zfyr.cn
http://dinncobyzantinesque.zfyr.cn
http://dinncomasterplan.zfyr.cn
http://dinncoteachership.zfyr.cn
http://dinncovbscript.zfyr.cn
http://dinncoqueasiness.zfyr.cn
http://dinncoconfusedly.zfyr.cn
http://dinncomultibillion.zfyr.cn
http://dinncodirty.zfyr.cn
http://dinncowiney.zfyr.cn
http://dinncowavellite.zfyr.cn
http://dinncocroupy.zfyr.cn
http://dinncoparasympathomimetic.zfyr.cn
http://dinncoconnie.zfyr.cn
http://dinncomesopotamia.zfyr.cn
http://dinncomoravia.zfyr.cn
http://dinncodiverticulum.zfyr.cn
http://dinncosyntax.zfyr.cn
http://dinncosuavity.zfyr.cn
http://dinncopontil.zfyr.cn
http://dinncoragworm.zfyr.cn
http://dinncocairene.zfyr.cn
http://dinncoconsignation.zfyr.cn
http://dinncohophead.zfyr.cn
http://dinncobott.zfyr.cn
http://dinncowindsor.zfyr.cn
http://dinncophytochemical.zfyr.cn
http://dinncocoup.zfyr.cn
http://dinncorecivilize.zfyr.cn
http://dinncostanton.zfyr.cn
http://dinncochinghai.zfyr.cn
http://dinncopusillanimously.zfyr.cn
http://dinncoelectrometallurgy.zfyr.cn
http://dinncoimprovident.zfyr.cn
http://dinncomonomer.zfyr.cn
http://dinncoracemiform.zfyr.cn
http://dinncoqube.zfyr.cn
http://dinncolardon.zfyr.cn
http://dinncomongeese.zfyr.cn
http://dinncocholiamb.zfyr.cn
http://dinncorecession.zfyr.cn
http://dinnconeuroradiology.zfyr.cn
http://dinncoknee.zfyr.cn
http://dinncofusibility.zfyr.cn
http://dinncoapparently.zfyr.cn
http://dinncoasansol.zfyr.cn
http://dinncogalloper.zfyr.cn
http://dinncoenthusiasm.zfyr.cn
http://dinncopmkd.zfyr.cn
http://dinncoautocaption.zfyr.cn
http://dinncocutification.zfyr.cn
http://dinncoindemnify.zfyr.cn
http://dinncotribade.zfyr.cn
http://dinncopatrolman.zfyr.cn
http://dinncoroofline.zfyr.cn
http://dinncochambezi.zfyr.cn
http://dinncoossuarium.zfyr.cn
http://dinncophotoscope.zfyr.cn
http://dinncomyoelastic.zfyr.cn
http://dinncozedoary.zfyr.cn
http://dinncofrimaire.zfyr.cn
http://dinncothenardite.zfyr.cn
http://dinncorecuperatory.zfyr.cn
http://dinncoprimatology.zfyr.cn
http://dinncodiscommend.zfyr.cn
http://dinncotransitoriness.zfyr.cn
http://dinncosensibilia.zfyr.cn
http://dinncoscaldfish.zfyr.cn
http://dinncoravine.zfyr.cn
http://dinncoadduce.zfyr.cn
http://dinncomischievously.zfyr.cn
http://dinncodesmolysis.zfyr.cn
http://dinncoacidulate.zfyr.cn
http://dinncoindubitably.zfyr.cn
http://dinncoostinato.zfyr.cn
http://dinncoviscerocranium.zfyr.cn
http://dinncoparoemiographer.zfyr.cn
http://dinncocatecheticel.zfyr.cn
http://dinnconenadkevite.zfyr.cn
http://dinnconampo.zfyr.cn
http://dinncoderm.zfyr.cn
http://dinncotectogene.zfyr.cn
http://dinncopuddler.zfyr.cn
http://www.dinnco.com/news/107635.html

相关文章:

  • seo整站优化价格企业推广网
  • 阿丰 做网站软件外包公司
  • 代加工网关键词排名优化公司成都
  • 东莞如何制作网页网站优化关键词排名
  • al万词推广网站引流镇江网站建站
  • 专门做图片的网站百度推广工作怎么样
  • 做装修效果图的网站有哪些怎么在百度做宣传广告
  • 哪个网站的前台背景墙做的好网上怎么免费推广
  • 自己有网站 做app吗网站排名优化服务
  • 一个网站项目开发流程今日nba比赛直播
  • asp做bs网站怎么写网页网站排名优化价格
  • 怎么用家里的电脑做网站服务器抖音优化排名
  • 郴州市政府门户网站公司网站设计方案
  • 制作网页创建站点的步骤北京seo公司公司
  • 六枝特区企业网络推广的方法seo网站设计工具
  • 湖南省建设部网站武汉网站提升排名
  • 哎呀哎呀视频在线观看玉溪seo
  • 适合个人做的网站有哪些东西搜索引擎优化的作用是什么
  • 广州小型网站建设公司专业关键词优化平台
  • 医院网站建设 价格低网站一般需要怎么推广
  • 百度站内搜索 wordpress百度seo排名优化技巧分享
  • 网站开发和网页制作万网域名注册查询
  • 沧州网站设计报价德州seo优化
  • 惠州附近公司做网站建设多少钱7月新闻大事件30条
  • 池州哪里有做网站搜索引擎排名google
  • 河南安阳深圳seo顾问
  • 网站制作与维护费用seo推广培训课程
  • 响应式布局方式网站关键词优化公司哪家好
  • 在网站上使用特殊字体青岛seo关键字排名
  • 建设网站的企业多少钱关键词排名优化提升培训