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

山东中讯做网站怎么样郑州网络优化实力乐云seo

山东中讯做网站怎么样,郑州网络优化实力乐云seo,天气预报最新天气预报,网站手机模板的特点1. 冒泡排序 (1) 基本思路 冒泡排序是一种简单的、但效率极低的排序算法#xff0c;基本思路是重复地遍历待排序的序列#xff0c;通过相邻元素的比较和交换#xff0c;将较大#xff08;或较小#xff09;的元素逐步冒泡到右侧#xff08;或左侧#xff0…1. 冒泡排序 (1) 基本思路 冒泡排序是一种简单的、但效率极低的排序算法基本思路是重复地遍历待排序的序列通过相邻元素的比较和交换将较大或较小的元素逐步冒泡到右侧或左侧直到整个序列有序为止。 (2) 升序排序 BUBBLE-SORT(a, len)for i 1 ~ len-2dofor j 1 ~ len-i-2doif a[j] a[j1]doswap(a[j], a[j1]);end ifend forend for(3) 分析时间复杂度 程序执行次数化简后时间复杂度for i 1 ~ len-2 l e n − 2 len-2 len−2 O ( l e n ) O(len) O(len)for j 1 ~ len-i-2 ( l e n − 1 ) ⋅ ( l e n − 2 ) 2 \frac{{(len-1) \cdot (len-2)}}{2} 2(len−1)⋅(len−2)​ O ( l e n 2 ) O(len^2) O(len2)if a[j] a[j1] ( l e n − 1 ) ⋅ ( l e n − 2 ) 2 \frac{{(len-1) \cdot (len-2)}}{2} 2(len−1)⋅(len−2)​ O ( l e n 2 ) O(len^2) O(len2)swap(a[j], a[j1]) ( l e n − 1 ) ⋅ ( l e n − 2 ) 2 \frac{{(len-1) \cdot (len-2)}}{2} 2(len−1)⋅(len−2)​ O ( l e n 2 ) O(len^2) O(len2)BUBBLE-SORT 3 l e n 2 − 9 l e n 10 2 ⋅ ( l e n − 2 ) \frac{{3len^2 - 9len 10}}{2} \cdot (len-2) 23len2−9len10​⋅(len−2) O ( l e n 3 ) O(len^3) O(len3) 所以冒泡排序的时间复杂度一般在 O ( n 3 ) O(n^3) O(n3) 上下。即使时间复杂度很高但是冒泡排序还是有很高的地位。它既简单又容易实现。 2. 插入排序 (1) 基本思路 插入排序是一种简单直观的排序算法基本思路是将一个待排序的元素插入到已经排好序的子序列中的适当位置直到整个序列有序为止。 (2) 升序排序 INSERTION-SORT(a, len)for i 1 ~ len-1dokey a[i]j i - 1while j 0 and a[j] keydoa[j1] a[j]j j - 1end whilea[j1] keyend for(3) 分析时间复杂度 程序执行次数化简后时间复杂度for i 1 ~ len-1 l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len)while j 0 and a[j] key ( l e n − 1 ) ⋅ ( l e n − 2 ) 2 \frac{{(len-1) \cdot (len-2)}}{2} 2(len−1)⋅(len−2)​ O ( l e n 2 ) O(len^2) O(len2)a[j1] a[j] ( l e n − 1 ) ⋅ ( l e n − 2 ) 2 \frac{{(len-1) \cdot (len-2)}}{2} 2(len−1)⋅(len−2)​ O ( l e n 2 ) O(len^2) O(len2)a[j1] key l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len)INSERTION-SORT 3 l e n 2 − 3 l e n 4 2 \frac{{3len^2 - 3len 4}}{2} 23len2−3len4​ O ( l e n 2 ) O(len^2) O(len2) 所以插入排序的时间复杂度一般在 O ( n 2 ) O(n^2) O(n2) 上下。它的时间复杂度比冒泡排序低是一种简单且常用的排序算法。 3. 选择排序 (1) 基本思路 选择排序是一种简单直观的排序算法基本思路是找到待排序序列中的最小或最大元素将它与序列的第一个位置进行交换然后再在剩余的序列中找到最小或最大元素将它与序列的第二个位置进行交换以此类推直到整个序列有序为止。 (2) 升序排序 SELECTION-SORT(a, len)for i 1 ~ len-1dominIndex ifor j i1 ~ lendoif a[j] a[minIndex]dominIndex jend ifend forswap(a[i], a[minIndex])end for(3) 分析时间复杂度 程序执行次数化简后时间复杂度for i 1 ~ len-1 l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len)for j i1 ~ len ( l e n − 1 ) ⋅ l e n 2 \frac{{(len-1) \cdot len}}{2} 2(len−1)⋅len​ O ( l e n 2 ) O(len^2) O(len2)if a[j] a[minIndex] ( l e n − 1 ) ⋅ l e n 2 \frac{{(len-1) \cdot len}}{2} 2(len−1)⋅len​ O ( l e n 2 ) O(len^2) O(len2)swap(a[i], a[minIndex]) l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len)SELECTION-SORT 3 l e n 2 − 3 l e n 4 2 \frac{{3len^2 - 3len 4}}{2} 23len2−3len4​ O ( l e n 2 ) O(len^2) O(len2) 所以选择排序的时间复杂度一般在 O ( n 2 ) O(n^2) O(n2) 上下。虽然时间复杂度较高但选择排序在某些情况下可以比其他排序算法更高效。 4. 快速排序 (1) 基本思路 快速排序是一种高效的排序算法基本思路是通过一趟排序将待排序序列分割成独立的两个部分其中一部分的所有元素都比另一部分的任意元素小然后再对这两部分继续进行排序直到整个序列有序为止。 (2) 升序排序 QUICK-SORT(a, low, high)if low highdopivotIndex PARTITION(a, low, high)QUICK-SORT(a, low, pivotIndex-1)QUICK-SORT(a, pivotIndex1, high)end ifPARTITION(a, low, high)pivotValue a[high]i low - 1for j low ~ high-1doif a[j] pivotValuedoi i 1swap(a[i], a[j])end ifend forswap(a[i1], a[high])return i 1(3) 分析时间复杂度 程序执行次数化简后时间复杂度if low high log ⁡ 2 ( l e n ) \log_2(len) log2​(len) O ( log ⁡ ( l e n ) ) O(\log(len)) O(log(len))PARTITION(a, low, high) l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len)QUICK-SORT(a, low, pivotIndex-1) l e n 2 − l e n 2 \frac{{len^2 - len}}{2} 2len2−len​ O ( l e n 2 ) O(len^2) O(len2)QUICK-SORT(a, pivotIndex1, high) l e n 2 − l e n 2 \frac{{len^2 - len}}{2} 2len2−len​ O ( l e n 2 ) O(len^2) O(len2)QUICK-SORT 3 l e n 2 − 3 l e n 10 2 \frac{{3len^2 - 3len 10}}{2} 23len2−3len10​ O ( l e n 2 ) O(len^2) O(len2)PARTITION l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len) 所以快速排序的时间复杂度一般在 O ( n 2 ) O(n^2) O(n2) 上下但在平均情况下时间复杂度为 O ( n log ⁡ n ) O(n \log n) O(nlogn)。 5. 归并排序 (1) 基本思路 归并排序是一种高效的排序算法基本思路是将待排序序列分成若干个子序列分别进行排序然后再将已排序的子序列合并成更大的有序序列直到最终只有一个有序序列为止。 (2) 升序排序 MERGE-SORT(a, low, high)if low highdomid (low high) / 2MERGE-SORT(a, low, mid)MERGE-SORT(a, mid1, high)MERGE(a, low, mid, high)end ifMERGE(a, low, mid, high)n1 mid - low 1n2 high - midleft new Array[n1]right new Array[n2]for i 0 ~ n1-1doleft[i] a[low i]end forfor j 0 ~ n2-1doright[j] a[mid 1 j]end fori 0j 0k lowwhile i n1 and j n2doif left[i] right[j]doa[k] left[i]i i 1elsea[k] right[j]j j 1end ifk k 1end whilewhile i n1doa[k] left[i]i i 1k k 1end whilewhile j n2doa[k] right[j]j j 1k k 1end while(3) 分析时间复杂度 程序执行次数化简后时间复杂度if low high log ⁡ 2 ( l e n ) \log_2(len) log2​(len) O ( log ⁡ ( l e n ) ) O(\log(len)) O(log(len))MERGE-SORT(a, low, mid) l e n ⋅ ( log ⁡ ( l e n ) − 1 ) 2 \frac{{len \cdot (\log(len) - 1)}}{2} 2len⋅(log(len)−1)​ O ( l e n log ⁡ ( l e n ) ) O(len \log(len)) O(lenlog(len))MERGE-SORT(a, mid1, high) l e n ⋅ ( log ⁡ ( l e n ) − 1 ) 2 \frac{{len \cdot (\log(len) - 1)}}{2} 2len⋅(log(len)−1)​ O ( l e n log ⁡ ( l e n ) ) O(len \log(len)) O(lenlog(len))MERGE(a, low, mid, high) l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len)MERGE-SORT 3 l e n ⋅ ( log ⁡ ( l e n ) − 1 ) 2 \frac{{3len \cdot (\log(len) - 1)}}{2} 23len⋅(log(len)−1)​ O ( l e n log ⁡ ( l e n ) ) O(len \log(len)) O(lenlog(len))MERGE l e n − 1 len-1 len−1 O ( l e n ) O(len) O(len) 所以归并排序的时间复杂度一般为 O ( n log ⁡ n ) O(n \log n) O(nlogn)在任何情况下都具有稳定的性能。
http://www.zqtcl.cn/news/173059/

相关文章:

  • 温州市建设工程质量安全管理总站贵阳最新消息今天
  • 成都服装网站建设工作是否能给我们带来快乐
  • 电商网站建设综述长沙高端网站建设
  • 网站建设有哪些环节怎么申请网址
  • 做网站要什么软件经典网站首页
  • 个人网站备案转公司备案长沙网站seo报价
  • 上海网站开发建设电话电影vip网站建设步骤
  • 17.zwd一起做网站池尾站邢台快用网络科技有限公司
  • 做写字楼租赁用什么网站好如何申请网站com域名
  • 如何查询网站服务商安徽省建设厅证件查询安全员c证
  • asp网站怎么安装程序员wordpress插件
  • 池州网站建设哪家好郑州seo网站管理
  • 我要建个人网站国外免备案虚拟主机
  • 自建站 外贸做旅游网约车的网站
  • 网站关键词优化排名软件东莞网站建设图表
  • 为企业设计网站微信开放平台的发展前景
  • 苏州高端做网站软件开发流程图例子
  • 开发区网站建设公司wordpress中文官网
  • 购物网站项目经验搭建网站流程
  • 网站建设企业蛋糕怎么做网站里导出没有水印的图
  • 享设计网做兼职设计师怎么样何鹏seo
  • 淘宝联盟网站推广位怎么做网站建设小知识
  • 徐州有办网站的地方吗企业做网站多少钱
  • 地铁公司招聘信息网站通江县网站建设
  • 家具网站 模板上海虹口建设局官方网站
  • 网站建站建设哪家好wordpress全站静态
  • 旅游网站建设策划seo顾问多少钱
  • 个人网站注册平台要多少钱彩票网站开发 违法
  • 贵州城乡住房和建设厅网站易企秀网站开发语言
  • 返利网站做鹊桥推广免费的舆情网站入口在哪