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

网站建设与管理多选题/百度app关键词优化

网站建设与管理多选题,百度app关键词优化,无人机公司网站建设,wordpress微交易快速排序具有最好的平均性能(average behavior),但最坏性能(worst case behavior)和插入排序 相同,也是O(n^2)。比如一个序列5,4,3,2,1,要排为1,2,3,4,5。按照快速排序方法,每次只会…

快速排序具有最好的平均性能(average behavior),但最坏性能(worst case behavior)和插入排序

相同,也是O(n^2)。比如一个序列5,4,3,2,1,要排为1,2,3,4,5。按照快速排序方法,每次只会有一个数据进入正确顺序,不能把数据分成大小相当的两份,很明显,排序的过程就成了一个歪脖子树,树的深度为n,那时间复杂度就成了O(n^2)。尽管如此,需要排序的情况几乎都是乱序的,自然性能就保证了。据书上的测试图来看,在数据量小于20的时候,插入排序具有最好的性能。当大于20时,快速排序具有最好的性能,归并(merge sort)和堆排序(heap sort)也望尘莫及,尽管复杂度都为nlog2(n)。
1、算法思想

     快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。

(1) 分治法的基本思想
     分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。

(2)快速排序的基本思想
     设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:
①分解: 
     在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1)和R[pivotpos+1..high],并使左边子区间中所有记录的关键字均小于等于基准记录(不妨记为pivot)的关键字pivot.key,右边的子区间中所有记录的关键字均大于等于pivot.key,而基准记录pivot则位于正确的位置(pivotpos)上,它无须参加后续的排序。
  注意:
     划分的关键是要求出基准记录所在的位置pivotpos。划分的结果可以简单地表示为(注意pivot=R[pivotpos]):
     R[low..pivotpos-1].keys≤R[pivotpos].key≤R[pivotpos+1..high].keys
                  其中low≤pivotpos≤high。
②求解: 
     通过递归调用快速排序对左、右子区间R[low..pivotpos-1]和R[pivotpos+1..high]快速排序。

③组合: 
     因为当"求解"步骤中的两个递归调用结束时,其左、右两个子区间已有序。对快速排序而言,"组合"步骤无须做什么,可看作是空操作。

快速排序C++代码实现:

#include<iostream>
#include<vector>
using namespace std;
int quicksort(int *a, int low, int high)
{int key = a[low];while (low < high){while (low<high&&a[high]>=key)//记得是要先从后往前{high--;}a[low] = a[high];while (low < high&&a[low] <= key)//这里要取等号不然会陷入死循环{low++;}a[high] = a[low];}a[low] = key;return low;
}
void QSort(int *a, int low, int high)
{if (low < high){int mid = quicksort(a, low, high);QSort(a, low, mid - 1);QSort(a, mid + 1, high);}}
int main()
{int a [11] = { 2,6,4,5,54,53,53,5,34,34,32};QSort(a, 0, 10);for (int i = 0; i < 11; i++){cout << a[i] << " ";}return 0;
}

  快速排序最坏情况是,把一个降序的数列变为升序序列或者升序序列变为降序序列,最好情况每次划分过程产生的区间大小都为n/2

转载于:https://www.cnblogs.com/wuyepeng/p/9689124.html

http://www.lbrq.cn/news/1070731.html

相关文章:

  • wordpress路径函数/seo的主要分析工具
  • WordPress设置域名出错/seo内容优化心得
  • 骨科医院网站模板/xp优化大师
  • 有没有在淘宝找人做网站被骗过的/搜索引擎优化的主要内容
  • 网站原型设计和版式设计/百度软件商店
  • 建设部网站查询通报/哪个平台可以免费打广告
  • 兰州专业做网站的公司哪家好/b站视频推广网站2023
  • 行业协会网站建设的目的/今日中央新闻
  • 做网站大连/深圳龙岗区疫情最新消息
  • 黄骅港船舶动态信息平台/seo准
  • 医疗网站建设哪家好/淄博头条新闻今天
  • wordpress论坛vip破解/抖音seo推荐算法
  • 太原金茂大厦做网站的/seo管理与优化期末试题
  • 开封网站建设中心/手机网站百度关键词排名
  • 聊城集团网站建设多少钱/seowhy论坛
  • 宁夏企业网站建设/腾讯竞价广告
  • 万网域名续费优惠/seo排名优化培训怎样
  • 怎么填写网站备案申请/常用的网络营销工具
  • 网站用图怎么做文件小质量高/百度指数批量获取
  • 一键建站系统有哪些/百度网盘资源免费搜索引擎入口
  • 佛山网站建设怎么做/seo求职信息
  • 高端网站设计 公司新鸿儒/搜索引擎优化seo方案
  • 怎么制作游戏私服/临沂seo公司稳健火星
  • 百度互联网营销是什么/seo收费标准
  • 哪个新闻网站做的好/网络营销主要干什么
  • 网站服务公司排名/亿驱动力竞价托管
  • 聊天软件是怎么开发的/网站seo设置是什么意思
  • 做网站都需要什么人团/找培训机构的平台
  • 天津网站制作建设/天津建站网
  • 文档下载网站 建设/重庆森林经典台词 凤梨罐头
  • 【Bluetooth】【Transport层篇】第四章 基于基础UART的蓝牙硬件发送协议 UART H4 Transport详解
  • JavaWeb学习------SpringCloud入门
  • 使用DrissionPage实现xhs笔记自动翻页并爬取笔记视频、图片
  • 腾讯人脸识别
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像
  • Windows和Linux的tree工具