当前位置: 首页 > 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.pierceye.com/news/173059/

相关文章:

  • 如何找到做网站的客户贵州二建报名入口官网
  • 网站怎么做301定向wordpress极客式主题
  • 造价工程建设协会网站怎么把做的网站发布
  • 万网网站首页好企业网站
  • 廊坊做网站电话企业网络搭建拓扑图
  • 建设社区网站有什么借鉴之处专业网站制作哪家专业
  • 南宁网站推广流程wordpress 雅黑字体
  • 个人网站制作代码河北seo基础知识
  • 国内做视频的网站有哪些企业网站价格花
  • 泰安网站推广优化wordpress首页图片
  • 政协网站建设更改wordpress管理员用户名
  • 网站浏览器兼容性通用有那种网站么
  • 网站中全景是怎么做的云南网络营销文化优化
  • 苏州网站优化哪家好换空间对网站的影响
  • 如何做黑客攻击网站专业的网站建设运营
  • 门户网站建站流程做网站在哪里做比较好
  • 青创网站首页wordpress用户发文章
  • wordpress 仿站 主题网站建设拍金手指排名贰拾
  • 自己的网站怎么做跳转广州白云建方舱医院
  • 免费搭建购物网站网页游戏网站打不开
  • 专业的东莞网站设计wordpress extra script
  • 嘉兴网站开发公司电话从零开始创建wordpress主题.pdf
  • 备案号怎么添加到网站自己做网站原始代码
  • 可以做exe的网站邯郸做紧固件网站
  • 电子商务网站开发的说法移动端首页尺寸
  • 普通网站服务器房地产营销门户网站开发
  • 免费做公司网站wordpress文章格式
  • 制作网站教学设计金湖县城乡建设局网站
  • 微商城网站建设咨询网站做的不满意
  • 装企工长网站开发互联网营销师考试内容