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

网站建设与管理专业是什么优化课程

网站建设与管理专业是什么,优化课程,肇庆网站建设,网站建设税收编码数据结构(六)一、大O表示法二、冒泡排序三、选择排序一、大O表示法 在计算机中采用粗略的度量来描述计算机算法的效率,这种方法被称为“大O”表示法。 我们判断一个算法的效率,不能只凭着算法运行的速度,因为随着数据…

数据结构(六)

  • 一、大O表示法
  • 二、冒泡排序
  • 三、选择排序

一、大O表示法

在计算机中采用粗略的度量来描述计算机算法的效率,这种方法被称为“大O”表示法。
我们判断一个算法的效率,不能只凭着算法运行的速度,因为随着数据量的变化,算法的速度会发生变化,所以我们应该:

根据算法的速度随着数据量的变化会如何变化,这样的方式来表示算法的效率,大O表示法就是方式之一。

推导大O表示法:
规则一:用常量1取代运行时间中所有的加法常量。如7 + 8 = 15,用1表示运算结果15,大O表示法表示为O(1);
规则二:运算中只保留最高阶项。如N^3 + 3n +1,大O表示法表示为:O(N³);
规则三:若最高阶项的常数不为1,可将其省略。如4N2,大O表示法表示为:O(N²);

接下来是我们的集中排序算法:
简单排序:冒泡排序、选择排序、插入排序;
高级排序:希尔排序、快速排序;
我们封装一个列表来存储数据和排序算法

class ArrayList {constructor() {this.arr = []}insert(element) {return this.arr.push(element);}toString() {return this.arr.join(' ');}
}let list = new ArrayList();list.insert(4);list.insert(5);list.insert(2);list.insert(1);list.insert(3);console.log(list.toString());

二、冒泡排序

我先自己写了一遍,我发现我写的这个其实是有问题的,内层循环控制两个元素依次比较,外层循环控制比较的趟数。这样写虽然能实现,但是你会发现其实内层循环每次都要比较arr.length-1次,而实际上后面元素如果排好的话,根本不需要再比较了,比如21345,那么345就不用再比较了。

1.冒泡排序
bubbleSort() {for(let i = 0; i < this.arr.length-1; i++) {for(let i = 0; i < this.arr.length-1; i++) {if(this.arr[i] > this.arr[i+1]) {//交换两个位置的值let zzy = this.arr[i+1];this.arr[i+1] = this.arr[i];this.arr[i] = zzy;}}}return this.arr
}

这样的话就需要进行一些小小的改进:
改进的就是这个for循环的次数,拿[4,2,1,3]来举例,外层循环控制趟数,那么4个数比较3趟,依次递减(j=3第一趟,j=2第二趟,j=1第三趟),每一趟中都要两两比较,从下标为0开始,依次比较j次(j=3第一趟比较3次,j=2第二趟比较2次,j=1第三趟比较1次)。

总结:4个数要比较三趟,第一趟比较3次,第二趟比较2次,第三趟比较1次

bubbleSort() {for (var j = this.arr.length - 1; j > 0; j--) {for (var i = 0; i < j; i++) {if (this.arr[i] > this.arr[i + 1]) {let zzy = this.arr[i + 1];this.arr[i + 1] = this.arr[i];this.arr[i] = zzy;}}}return this.arr
}

在这里插入图片描述

冒泡排序的效率:

上面所讲的对于7个数据项,比较次数为:6 + 5 + 4 + 3 + 2 + 1;
对于N个数据项,比较次数为:(N - 1) + (N - 2) + (N - 3) + … + 1 = N * (N - 1) / 2;
如果两次比较交换一次,那么交换次数为:N * (N - 1) / 4;

使用大O表示法表示比较次数和交换次数分别为:O(N*(N - 1)/2)和O(N*(N - 1)/4),根据大O表示法的三条规则都化简为:O(N²);

三、选择排序

占个坑,先学React去了

http://www.mmbaike.com/news/78198.html

相关文章:

  • 企业邮箱多少钱一年安卓系统优化app
  • 动漫制作专业就业方向seo交流论坛seo顾问
  • 小地方的旅游网站怎么做网页设计图
  • 做网站需要走公司吗营销对企业的重要性
  • 网站建设文档中国十大公关公司排名
  • 个人电脑可以做网站服务器吗如何在网上推广自己的公司
  • 在网络上做兼职的网站推广游戏赚钱的平台有哪些
  • 北京住房建设厅网站企业网络营销的模式有哪些
  • 阿里云建立wordpress做seo要投入什么
  • 公司企业logo设计博客网站seo
  • 如何在国外做网站免费网络推广软件
  • 商城网站平台怎么做搜索引擎的工作原理有哪些
  • 东莞做网站有哪些产品网络推广的方法
  • 专做蓝领招聘网站有哪些松原头条新闻今日新闻最新
  • 网站设计制作全网优惠seo的基本工作内容
  • 网站没备案可以访问吗百度代理公司怎么样
  • 苏州市吴江区住房和城乡建设局网站seo还有用吗
  • 兰州网站建设100专门的网页制作工具有
  • 做网站每年需付费吗推广普通话手抄报文字
  • 网站建设越来越难做seo搜索引擎优化价格
  • 网站建设+太原做一个简单网页
  • 专业团队pptseo优化及推广如何运营
  • 商城网站开发视频教程windows优化软件哪个好
  • 山西做网站公司软文营销的作用有哪些
  • 公司开发个网站有哪些dw网页设计模板网站
  • 北京西站电话什么软件可以排名次
  • 高端网站制作怎么样网站优化价格
  • 上海徐家汇网站建设天津优化公司
  • 高邮市建设网站网站改版
  • 个人做网站靠什么挣钱获取排名