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

做组织架构图的网站/厦门排名推广

做组织架构图的网站,厦门排名推广,新闻网页制作源代码,中国制造网谷歌seo冒泡排序以及改进方案 介绍: 冒泡排序属于一种典型的交换排序(两两比较)。冒泡排序就像是把一杯子里的气泡一个个往上冒一样。它不断比较相邻的元素,如果顺序不对就像水泡一样交换它们的位置,直到整个序列像水泡一样…

冒泡排序以及改进方案

介绍:

冒泡排序属于一种典型的交换排序(两两比较)。冒泡排序就像是把一杯子里的气泡一个个往上冒一样。它不断比较相邻的元素,如果顺序不对就像水泡一样交换它们的位置,直到整个序列像水泡一样,按照大小顺序排列好。当它发现一轮遍历中没有发生交换,就像是水泡都冒完了一样,就知道排序完成了。

图示:

gif01

冒泡排序性能

算法最好时间最坏时间平均时间额外空间稳定性
冒泡O(n)O(n2)O(n2)1稳定

普通版本的冒泡排序

通过简单的两层遍历,就可以实现了:

for (int i = 0; i < array.length; i++) {for (int j = 0; j < array.length -i -1; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}
}

第一次改进:

当一个数组大小不是很混乱的时候,我们没必要每次都去交换:

例如:2,1,3,4,6 这样的数组,我们在第一次交换的时候就已经排好序了(1,2,3,4,6),我们无需再基于1,2,3,4,6排序,改进如下:

for (int i = 0; i < array.length; i++) {int flag = false; // 是否发生交换for (int j = 0; j < array.length -i -1; j++) {if (array[j] > array[j + 1]) { // 顺序不对,需要交换// 以下三行交换操作int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;flag = true; // 发生了交换}if(!flag) { // 如果没有发生交换,跳出循环,无需比对后面的break;}}}

第二次改进:

最后一次交换位置将整个数组分为了两部分:之前是未排序部分,之后是已排序部分。如此一来,下一次冒泡排序就只需在未排序部分进行冒泡排序即可。 根据这个思路再进行代码改进:

public class BubbleSort {// 冒泡排序算法实现public static void bubbleSort(int[] array) {if (array == null || array.length < 0) {return;}int sortIndex = array.length - 1; // 初始排序边界为数组末尾int lastChange = 0; // 记录最后一次交换的位置for (int i = 0; i < array.length; i++) {boolean flag = false; // 标记是否发生交换for (int j = 0; j < sortIndex; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;flag = true;lastChange = j; // 更新最后一次交换的位置}}sortIndex = lastChange; // 更新排序边界if (!flag) { // 若未发生交换,说明数组已排序,结束排序break;}}}public static void main(String[] args) {int[] arr = {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);System.out.println("排序后的数组:");for (int i : arr) {System.out.print(i + " ");}}
}
http://www.ho-use.cn/article/790.html

相关文章:

  • 图片展示网站/网站建设解决方案
  • 新密建设局网站/百度信息流投放技巧
  • 莱芜今日最新消息/天津seo优化公司
  • 全国高端网站/百度有刷排名软件
  • wordpress year/木卢seo教程
  • 怎样做网站分流赚钱/百度搜索风云榜官网
  • 汽车金融网站怎么做/竞价排名适合百度吗
  • 全国企业信息查询系统登录/seo关键词排名优化怎样收费
  • 老榕树网站建设教学/网络营销手段有哪些方式
  • 网站改版url/搜索引擎市场份额2023
  • 正规网站建设空间/2022年新闻摘抄十条
  • 江苏建设工程标准网站/线上营销推广方案有哪些
  • 创新的网站建设排行榜/app推广赚佣金
  • 广州美容网站建设/seo内部优化方案
  • 陕西汽车网站建设/怎么样关键词优化
  • 潍坊做网站多少钱/网络推广费用
  • 网站建设教程集体苏州久远网络/做任务赚佣金一单10块
  • 外国网站邀请做编辑有没有自动排名的软件
  • 德州疫情最新消息今天/网站关键词优化推广
  • php网站开发说明文档/windows优化大师怎么使用
  • 淮安网站建设方案/百度指数怎么看排名
  • 网站支付链接怎么做/网络广告名词解释
  • 网站域名备案代理/直通车推广技巧
  • 做的很垃圾的网站/网络营销研究背景及意义
  • 网站的链接要怎么做/百度有效点击软件
  • 网站建设客服术语/品牌网络推广方案
  • 企业形象设计图片/湘潭网站seo磐石网络
  • html菜鸟教程首页/成都百度推广优化创意
  • 如何制作自己的app/seo技术蜘蛛屯
  • wordpress编辑器英文/优化大师班级优化大师