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

intellij idea做网站东莞定制网页设计

intellij idea做网站,东莞定制网页设计,企业网站建设方案渠道,安阳做网站推广前言: 直接选择排序是排序中比较简单的排序,同时也是时间复杂度不是很优的排序。 思想: 本文主要讲解直接选择排序的优化版本。 我们经过一次遍历直接将该数列中最大的和最小的值挑选出来,如果是升序,就将最小的和…

前言:

直接选择排序是排序中比较简单的排序,同时也是时间复杂度不是很优的排序。

思想:

本文主要讲解直接选择排序的优化版本。

我们经过一次遍历直接将该数列中最大的和最小的值挑选出来,如果是升序,就将最小的和首元素进行交换,最大的与尾元素进行交换。然后将首部元素++,尾部元素--,重新遍历再次选择次大的和次小的。以此类推。

注意:

按照上面的思路会遇到一些特殊情况,造成排序的失败。

比如说我们先将最大的值赋给尾部元素,如果最大的值正好在头部元素,而最小的值恰好在尾部元素,这样就导致把最大的元素赋给尾部元素时,会把尾部本来的最小值覆盖掉,造成排序的失败。

为了解决这种情况,我们只需要将尾部元素提前存储好就欧克拉~

原码:

void SelectSort(int* a, int n)
{int begin = 0;int end = n - 1;while (begin <= end){int maxi = begin, mini = begin;for (int i = begin + 1; i < end + 1; i++){//找出最大值和最小值的下标if (a[i] > a[maxi])maxi = i;if (a[i] < a[mini])mini = i;}Swap(&a[begin], &a[mini]);//max如果被换走,就修正以下if (maxi == begin)maxi = mini;Swap(&a[end], &a[maxi]);begin++;end--;}
}

时间复杂度:
n + n-2 + n - 4 + n - 6……

这也是一个等差数列,所以时间复杂度就是O(N^2)。

显然这并不是一个优的排序算法。

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

相关文章:

  • 网站建设捌金手指花总二五微信免费开发平台
  • 本地网站建设视频教程网站改版引导
  • 桂林微信网站开发制作一个自适应网站
  • 网站错误提示页设计移动网站建设论文
  • 郑州网站建设丶汉狮网络wordpress显示时间插件下载
  • 旅游网站内容百度指数下载手机版
  • 旅行社网站系统5g互联如何取消网站备案
  • 做外贸有哪些网站比较好装修之家网
  • 南京电信网站空间扩容广州做网站一般多少钱
  • 做设计适合关注的网站软装设计培训班哪家好
  • 深圳市建网站公沈阳做人流哪个医院好安全
  • 太原做网站要多少钱呢北京建设网站的公司哪家好
  • 池州做网站的公司wordpress后台乱了是怎么回事
  • 网站建设费用文档视频网站开发php
  • 城乡住房建设厅网站宁德城乡建设网站
  • 建设机械网站咨询wordpress 自定义二级菜单
  • 荣成城乡建设局网站福州建站模板厂家
  • 做的比较好的美食网站有哪些wordpress 分类缩略图
  • wordpress 专栏页面优化网站公司价格是多少钱
  • 企业网站制作要求网站推广计划书范文
  • 海外网站有哪些西安广告公司前十名
  • 佛山网站建设制作公司江苏联运建设有限公司网站
  • 手机网站开发协议网站建设服务流程
  • 大学网站模板html上海青浦网站建设公司
  • 城乡建设学校网站作品集网站代码
  • 做程序题的国外网站安徽网站建设有限公司
  • 网站弹窗公告代码商城源代码
  • 门户网站编辑联系方式企业网站产品内页优化
  • 建设家装网站新闻国际最新消息
  • 做网站服务器多钱江西省赣州市中考成绩查询时间