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

有域名 有固定ip怎么做网站青岛网站建设公司排名

有域名 有固定ip怎么做网站,青岛网站建设公司排名,b2b网站整合营销,医疗器械做网站到哪里先备案冒泡排序算法的运作如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3.针对所有的元素重复以上的步骤&#xf…

 

 

冒泡排序算法的运作如下:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

具体如何进行移动呢?让我们来看一个例子:

有8个数组成上面一个无序数列:5,8,6,5,9,2,1,7,目标是从小到大排序。
按照冒泡排序的思想,过程如下:
首先让5和8比较,8比5大,故两者不进行交换。
接下来8和6比较,8比6大,两者进行交换。

继续8和3比较,交换8和3的位置。

继续8和9比较,9比8大,两者不进行交换。

然后比较9和2,9比2大,两者进行交换。

接下来比较9和1,9比1大,两者进行交换。

 

在最后比较9和7,9大于7,两者进行交换。

经过上面的冒泡排序的第一轮运作。数列最右侧元素可以认为是一个有序区域,有序区域目前只有一个元素。

接下来进行如上的7轮排序得到最终的有序数列:

第六轮、第七轮、第八轮排序:
第六轮排序:

 

 第七轮排序:

 第八轮排序:

问题分析:在6-8轮中我们待排序的数列早就已经是有序的数列的,可是冒泡排序依旧进行比较。
算法改进1:在进行每一轮的排序工作时判断数列是否有序,如已经是有序的数列则将排序工作提早结束。
算法改进2:算法改进的关键点在于对数列有序区的界定。
按照冒泡排序的逻辑,有序区的长度和排序的轮数是相等的。比如第一轮排序过后的有序长度为1,第二轮排序后有序长度是2……但是实际情况是这样子的吗?实际上,数列真正的有序区可能会大于这个长度。那么后面的许多元素的比较是没有意义的。解决思路:在每一轮排序的最后,记录下最后一个元素交换的位置,那个位置也就是无序数列的边界,再往后就是有序区了。

基本的冒泡排序代码:

//冒泡排序函数  版本1
private static void SortBubbling(int[] arr_Native) {
int temp;
for (int i = 0; i < arr_Native.length-1; i++) { //外循环只需要比较arr.length-1次就可以
for (int j = 0; j < arr_Native.length-i-1; j++) { //内循环需要比较arr_Native.length-i-1
if (arr_Native[j]>arr_Native[j+1]) {
temp=arr_Native[j];
arr_Native[j]=arr_Native[j+1];
arr_Native[j+1]=temp;
}
}
}

}

算法改进1后的代码:
//冒泡排序函数 版本2
//利用boolean变量isSored作为标记。如果在本轮排序中,元素有交换,说明数列无序;如果没有元素交换,说明数列已然有序,直接跳出大循环
private static void SortBubbling2(int[] arr_Native) {
int temp;
for (int i = 0; i < arr_Native.length-1; i++) { //外循环只需要比较arr.length-1次就可以
boolean isSored = true;
for (int j = 0; j < arr_Native.length-i-1; j++) { //内循环需要比较arr_Native.length-i-1
if (arr_Native[j]>arr_Native[j+1]) {
temp=arr_Native[j];
arr_Native[j]=arr_Native[j+1];
arr_Native[j+1]=temp;
isSored = false;
}
}
if (isSored) {
break;
}
}

}
算法改进2后的代码:

private static void SortBubbling3(int[] arr_Native) {
int temp;
//记录最后一次交换的位置
int lastExchangeIndex = 0;
//无序数列的边界,每次比较只需要比到这里为止
int sortBorder = arr_Native.length-1;
for (int i = 0; i < arr_Native.length-1; i++) { //外循环只需要比较arr.length-1次就可以
boolean isSored = true;
for (int j = 0; j < sortBorder; j++) { //内循环需要比较arr_Native.length-i-1
if (arr_Native[j]>arr_Native[j+1]) {
temp=arr_Native[j];
arr_Native[j]=arr_Native[j+1];
arr_Native[j+1]=temp;
isSored = false;
lastExchangeIndex = j;
}
}
sortBorder=lastExchangeIndex;
if (isSored) {
break;
}
}

}

 

转载于:https://www.cnblogs.com/taowangwang/p/9530106.html

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

相关文章:

  • html5 css3 网站模板长沙百度地图
  • 西安公司网站费用如何开展网络营销
  • 网站建设 发票湖北网络营销网站
  • 郑州 互联网 公司网站海外aso优化
  • 购物网站开发教程视频济南网站制作平台
  • 北京网页设计公司哪儿济南兴田德润简介seo去哪里学
  • 企业网站建设的误区主要有5000元做百度推广效果怎么样
  • 网站怎么做维护石家庄今日头条新闻
  • 泉州专业网站设计技术公司软文广告经典案例短的
  • 做一个网站怎么做seo专业学校
  • 网上还有什么网站做批发域名历史查询工具
  • 做网站的视频教程网络营销的方法是什么
  • seo工资服务dz论坛如何seo
  • 余姚企业网站建设app推广拉新一手渠道
  • 驴妈妈旅游网站的建设淄博seo推广
  • 免费网站平台推荐电商运营培训课程有哪些
  • 做网站需要花费那方面的钱找平台推广
  • 网站规划说明书友情链接是外链吗
  • 福州网站制作建设优化网站排名需要多少钱
  • seo网站设计费用排名轻松seo 网站
  • 云浮 网站建设免费网络营销平台
  • 招聘网站花钱做的简历有用没百度官方官网
  • 兰州微信信息平台网站建设公司网页网站建设
  • 怎么做让网站排名靠前企业网站seo服务
  • 网站搭建有分谷歌关键词智能调词工具
  • 鲜花网站建设主要内容江门搜狗网站推广优化
  • 佛山禅城区网站建设公司推广方案100个
  • apple网站设计网站链接查询
  • 网站开发需要的软件有哪些seo优化工作内容做什么
  • 专业建设网站应该怎么做软文网站推广
  • 基于Node.js服务端的社区报修管理系统/基于express的在线报修管理系统
  • 同题异构解决leetcode第3646题下一个特殊回文数
  • Dockerfile
  • selenium一些进阶方法如何使用
  • 【TrOCR】模型预训练权重各个文件解读
  • GO学习记录七——上传/下载文件功能,添加启动运行工具