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

建设机械网站公司网站psd 模板

建设机械网站公司,网站psd 模板,微网站在哪制作的,廊坊网站建站建设冒泡排序#xff1a;简单而高效的排序技巧 欢迎来到我们今天的博客#xff0c;我们将一起探索计算机科学中最基本但同时也非常重要的概念之一#xff1a;冒泡排序。无论你是编程新手还是有一些编程经验的读者#xff0c;这篇博客都将帮助你更好地理解冒泡排序的原理和应用…冒泡排序简单而高效的排序技巧 欢迎来到我们今天的博客我们将一起探索计算机科学中最基本但同时也非常重要的概念之一冒泡排序。无论你是编程新手还是有一些编程经验的读者这篇博客都将帮助你更好地理解冒泡排序的原理和应用。 什么是冒泡排序 冒泡排序是一种简单的排序算法它重复地遍历要排序的数列一次比较两个元素如果它们的顺序错误就把它们交换过来。这个过程就像气泡从水底升到水面一样较大的元素会逐渐“浮”到数列的顶端。 冒泡排序的工作原理 让我们通过一个简单的例子来解释冒泡排序的工作原理 假设我们有一个数列 [5, 1, 4, 2, 8]我们需要对其进行排序。 第一轮排序外层循环的第1次 比较索引0和1的元素5和15 1交换。数组变为 [1, 5, 4, 2, 8]。比较索引1和2的元素5和45 4交换。数组变为 [1, 4, 5, 2, 8]。比较索引2和3的元素5和25 2交换。数组变为 [1, 4, 2, 5, 8]。比较索引3和4的元素5和85 8不交换。第一轮结束后最大的元素8“冒泡”到了正确的位置。 第二轮排序外层循环的第2次 现在比较的范围缩小最后一个元素8已经在正确位置不再参与比较。比较索引0和1的元素1和41 4不交换。比较索引1和2的元素4和24 2交换。数组变为 [1, 2, 4, 5, 8]。比较索引2和3的元素4和54 5不交换。第二轮结束后第二大的元素5也到了正确的位置。 后续轮次 每进行一轮排序最大的元素都会被放置在它应在的位置即数组的末尾。因此每一轮后参与比较的元素数量就减少一。 循环次数 外层循环负责进行多少轮比较。[5, 1, 4, 2, 8]这个数组我们是不是一个个去进行比较这是因为每一轮比较至少能确保一个元素移动到其最终位置最后一个元素经过 n-1 轮后自然就处于正确的位置了。一次循环确保一个到最终位置n-1次循环有n-1个最后一个是不是就不需要比较了因为他不得不被强制排序相当于最后一次只比较两个来看这个数组[5, 1, 4, 2, 8]第一次[1, 4, 2, 5, 8]第二次[1, 2, 4, 5, 8],第三次[1, 2, 4, 5, 8],由于2,4不需要比较第四个[1, 2, 4, 5, 8]是不是可以看到最后一次比较可以把第一个第二个的数字都排好序相当于一次排序解决了两个数字而别的都是一次解决一个所以外层只有n-1次循环内层循环我们可以想一下数字之间两两比较我下面用数字来说明第几和第几比较1与22与33与44与5在这个例子中有5个元素需要进行4轮比较因为最后一轮只剩一个元素自然是有序的。你可以发现因为是两两比较每个元素都会轮到但是最后一个元素轮不到所以次数是n-1哎注意看重点来了我们会发现内层的循环次数与外层挂钩对不对外层决定了从第几个开始第一轮就是第一个开始第二轮就是第二个开始那么我们是不是要在n-1的基础上减去第几轮呢没错到这里你就理解了。 冒泡排序的时间复杂度 时间复杂度冒泡排序的平均和最坏时间复杂度都是 O(n^2)其中 n 是数列的长度。这意味着如果数列的长度加倍排序所需的时间会增加四倍。空间复杂度冒泡排序的空间复杂度是 O(1)因为它只需要一个额外的空间来交换元素。 适用场景与限制 尽管冒泡排序非常简单易懂但它并不适合大规模的数据排序因为其效率较低。然而对于小规模数据或者教学目的冒泡排序是一个非常好的选择。 结语 冒泡排序以其简单易学而广受欢迎它不仅帮助我们理解排序的基本原理还为我们学习更复杂的排序算法奠定了基础。希望这篇博客帮助你更好地理解了冒泡排序的魅力 附上代码实现 使用了三个主流的语言进行实现 #include stdio.hvoid bubbleSort(int arr[], int n) {int i, j, temp;for (i 0; i n-1; i) for (j 0; j n-i-1; j) if (arr[j] arr[j1]) {temp arr[j];arr[j] arr[j1];arr[j1] temp;} }int main() {int arr[] {5, 1, 4, 2, 8};int n sizeof(arr)/sizeof(arr[0]);bubbleSort(arr, n);printf(Sorted array: \n);for (int i 0; i n; i)printf(%d , arr[i]);return 0; } def bubbleSort(arr):n len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] arr[j1]:arr[j], arr[j1] arr[j1], arr[j]arr [5, 1, 4, 2, 8] bubbleSort(arr) print(Sorted array is:, arr) public class BubbleSort {void bubbleSort(int arr[]) {int n arr.length;for (int i 0; i n-1; i)for (int j 0; j n-i-1; j)if (arr[j] arr[j1]) {int temp arr[j];arr[j] arr[j1];arr[j1] temp;}}public static void main(String args[]) {BubbleSort ob new BubbleSort();int arr[] {5, 1, 4, 2, 8};ob.bubbleSort(arr);System.out.println(Sorted array);for (int i0; iarr.length; i)System.out.print(arr[i] );} }
http://wiki.neutronadmin.com/news/27581/

相关文章:

  • node.js做网站好累制作类似网站软件
  • 外贸网站建设哪家好手机版wordpress使用
  • 怎么查网站关键词密度平面设计找素材的网站
  • 徐州网站建设价格基于django电商网站开发课设报告
  • 五个h5制作网站传媒公司官网
  • 各主流网站做景区宣传网站整改建设安全设备方案
  • 企业建站系统营销吧tt团队展览网站建设方案
  • 优化网站推广网站江苏城市建设职业学院网站
  • 网店美工培训肥城市区seo关键词排名
  • h5商城网站建设是什么微信代运营是什么意思
  • 西安网站设计建设公司 概况潍坊娜娜网站制作
  • 招生网站转换率低制作视频的软件手机
  • 用vs2017做网站国际网站建设招标
  • 网站建设项目心得体会网站的类型大全
  • 建设旅游网站数据库设计百度收录什么意思
  • 天津网站建设制作价格中文wordpress案例
  • 塘厦网站建设公司网站建设 石家庄
  • 做课件可赚钱的网站网站建设报价单 下载
  • 网站设计宽屏尺寸东莞大岭山房价
  • 昭通公司做网站哈尔滨 建网站
  • 怎样做网站排名优化深圳网站制作公司咨询
  • 免费项目网站优化的定义
  • 清远市专业网站制作文化建设新闻
  • 学做面包到什么网站交互式网站开发技术asp
  • 网站演示程序建设银行手机登录网站
  • 科技网站 网站建设自媒体营销的策略和方法
  • 网站做法广州黄埔区建设局网站局
  • 网站建设的风险识别织梦网站怎么把index.html去掉
  • 中山微网站建设报价素材网
  • 企业网站需要多大带宽云建站规划图