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

汕头建站网站加速代码

汕头建站,网站加速代码,电商怎么做新手入门视频,优化seo公司哪家好基本思想: 任取一个元素(比如第一个)为中心,称为枢轴(pivot)所有比它小的元素一律前放,比它大的元素后放,形成左右两个子表对各子表重新选择中心元素并以此规则调整直到每个子表的元…

基本思想

  • 任取一个元素(比如第一个)为中心,称为枢轴(pivot)
  • 所有比它小的元素一律前放,比它大的元素后放,形成左右两个子表
  • 对各子表重新选择中心元素并以此规则调整
  • 直到每个子表的元素只剩一个

算法

void QSort(SqList &L, int low, int high){if(low<high){pivotloc = Partition(L,low, high);//将L.r[]一分为二,pivotloc为枢轴元素排好序的位置QSort(L, low, pivotloc-1);//对左子表递归排序QSort(L, pivotloc+1, high);//对右子表递归排序}
}
int Partition(SqList &L, int low, int high){L.r[0]=L.r[low];pivotkey = L.r[low].key;while(low<high){while(low<high && L.r[high.key]>=pivotkey)--high;L.r[low]=L.r[high];while(low<high && L.r[low.key]<=pivotkey)++low;L.r[high] = L.r[low];}L.r[low]=L.r[0];return low;
}

示例
对于序列49 38 65 97 76 13 27,进行快速排序,步骤如下:
以第一个元素49作为枢轴,即pivotkey=49,进行第一轮排序,最后一个元素开始,将序列中大于49的元素放在右边,小于49的元素放在左边

27<49,将27放在左侧 i 所指的位置上,i++
38<49,38放在左侧i的位置上(已处在合适的位置),i++
65>49,将65放在右侧 j 所指的位置上,j--
13<49,将13放在左侧 i 所指的位置上,i++
以此类推,直到 i=j,用枢轴pivotkey替换此时的 i 和 j 的位置
第一轮排序过程如下
在这里插入图片描述
第一轮排序后,由于左右子序列元素个数均大于1,继续对左右子序列排序

左子序列排序
选第一个元素为枢轴
排序过程如下
在这里插入图片描述
经过一趟快排之后,左右子序列的元素个数均为1,左子序列排序结束

右子序列排序
选第一个元素为枢轴
排序过程如下:
在这里插入图片描述
经过一趟快排之后,左右子序列的元素个数均为1,右子序列排序结束

排序结束,生成的有序序列为13 27 38 49 65 76 97

时间复杂度

O( n l o g 2 n nlog_2n nlog2n)

  • QSort():Q( l o g 2 n log_2n log2n)
  • Partition():O(n)

就平均计算时间而言,快速排序是所有内排序方法中最好的一个

空间复杂度

快速排序不是原地排序

由于程序使用了递归,需要递归调用栈的支持,而栈的长度取决于递归调用的深度

  • 平均情况下,需要O(logn)的空间
  • 最坏情况下,需要O(n)的空间

稳定性

快速排序是一种不稳定的排序方法

http://www.yayakq.cn/news/845175/

相关文章:

  • 5118素材网站googleseo优化
  • 网站内页的设计山东省建设执业注册中心网站
  • 做门户网站建设多少钱seo电商运营是什么意思
  • 网站被收录又被取消了济南建设网中标公告
  • 提升审美网站拓者设计吧app
  • 做慕斯蛋糕那个网站有视频创网中国的网站
  • 零基础自己做网站编写网站方案设计书表格
  • 企业网站建设套餐 网络服务免费虚拟房屋设计软件
  • 交互设计师网站如何开个公司网站
  • 网站建设孝感网站根目录有哪些
  • 手机网站 asp济南商城网站开发
  • 怎么建立国外网站58同城深圳招聘网站
  • 湖州市建设局网站6折页在线设计平台
  • tp5第二季企业网站开发auth权限认证网站开发的人怎么样
  • 网站开发技术指标找人做微信网站
  • 网站设计基本流程第一步成都网络公关公司
  • 电子商务网站建设需求说明书微信网站二次开发
  • 网站建设与维护试卷分析网站开发建设推荐用书
  • 雏鸟app网站推广做教育网站宣传策略
  • 查看服务器上的网站江西网站建设哪家专业
  • 智慧团建网站几点关闭全球网络营销公司排行榜
  • 入侵dedecms网站管理员密码wordpress安装 用户名已存在
  • 郑州网站优化软件在线拼接图片
  • 58同城给做网站花都区住房和城市建设部网站
  • 白银做网站公司想做个网站应该怎么做
  • 大型网站建设价格怎么知道别人网站是谁做的优化
  • 域名访问网站怎么下载wordpress中的角色
  • 在线做春节网站wordpress 降级
  • 外卖网站怎么做朝阳网站建设推广
  • 房子竣工验收在哪个网站查模板置换