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

向日葵域名怎么做网站产品推广ppt范例

向日葵域名怎么做网站,产品推广ppt范例,做视频网站好做吗,网站建设结构图本篇文章主要讲解经典排序算法 -- 冒泡排序。 目录 1 算法思想 2 代码 3 时间复杂度与空间复杂度分析 1) 时间复杂度 2) 空间复杂度 1 算法思想 选择排序是一种经典的交换排序算法。其算法思想也比较简单,主要是比较相邻元素&…

本篇文章主要讲解经典排序算法 -- 冒泡排序。


目录

1  算法思想

2  代码 

3  时间复杂度与空间复杂度分析 

1) 时间复杂度

2) 空间复杂度


1  算法思想

  选择排序是一种经典的交换排序算法。其算法思想也比较简单,主要是比较相邻元素,假设这里是排升序,开始先比较 0 下标元素和 1 下标元素,如果 0 下标比 1 下标元素大,那就交换 0 下标元素和 1 下标元素;然后再比较 1 下标元素和 2 下标元素,如果 1 下标元素比 2 下标元素大,那就交换她们俩;接下来再比较 3 下标元素和 4 下标元素,4 下标元素与 5 下标元素 .... ,直到 n -2 小下标元素和 n - 1 下标元素比较完,第一轮比较就结束了,经过这轮比较之后,那么数组中最大的元素就被移到了下标为 n-1 的位置处,然后依次循环上述过程,依次将第二大,第三大元素...移到 n-2 下标位置,n-3 下标位置...,这样就完成了从小到大的排序。一次冒泡排序的过程如图所示:

可以看到图中第一轮需要排序的总共 10 个元素,第一轮总共进行了 9 次比较;依次类推,当第一轮结束之后,第二轮待排序的元素还有 9 个,所以比较的次数应该为 8 次;第三轮待排序的元素为 8 个,比较次数为 7 次,所以比较的次数 = 数组中元素的个数 - 轮数。在冒泡排序算法中,每次是将待排序元素中最大的元素放到最后面,当数组元素个数为 n 时,应该是将 n - 1 个元素放到最后面,所以轮数 = 数组元素的个数 - 1


2  代码 

void Swap(int* x, int* y)
{int tmp = *x;*x = *y;*y = tmp;
}void BubbleSort(int* arr, int n)
{//轮次for (int i = 0; i < n - 1; i++){int exchange = 1;//比较对数for (int j = 0; j < n - 1 - i; j++){if (arr[j] > arr[j + 1]){Swap(&arr[j], &arr[j + 1]);exchange = 0;}}//如果一对也没有交换,就跳出循环if (exchange){break;}}
}

解释:在冒泡排序算法的实现过程中,共有两层循环第一层循环控制比较的轮次,会进行 n-1(n为元素个数) 次,第二层循环控制比较的次数,会执行 n - 1 - i (n为元素个数,i为轮数)次,如果相邻元素前一个元素比后一个元素大的话,就会将他们进行交换。在代码中还进行优化,就是如果在第二次循环中,一次也没有交换的话,就代表剩下的待排序的元素已经有序了。例如对于上面那个例子,在 7 作为最大元素排序完之后,数组中的元素的排放如下图所示:

进行下一轮循环后数组中的元素的排列会变成如下图所示:

再进行下一次循环时,1 2 3 4 5 五个待排序的元素已经有序了,直接跳出循环,完成冒泡排序。 

  为了实现上述的优化逻辑,在第一层循环里面设置了一个交换的标志位 exchange,刚开始定义 exchange 为1,假设在第二轮循环中进行交换了就将 exchange 变为0,代表交换了,退出第二轮循环之后,如果 exchange 还为 1 就代表一次也没有交换,代表剩下的元素已经有序了,会 break 跳出循环,结束冒泡排序。

测试用例

int main()
{int arr[] = { 10, 2, 5, 7, 1, 4, 8, 9, 6};int n = sizeof(arr) / sizeof(arr[0]);BubbleSort(arr, n);Print(arr, n);return 0;
}

3  时间复杂度与空间复杂度分析 

1) 时间复杂度

  冒泡排序的时间复杂度很简单,由于有两层循环,每层循环在最坏情况下都会执行 n 次,所以时间复杂度 T(n)  = O(n^2)

2) 空间复杂度

  同前几个排序算法相同,冒泡排序算法只用了几个有限的变量,所以空间复杂度 S(n) = O(1)

http://www.dtcms.com/wzjs/426963.html

相关文章:

  • 手机app开发网站建设文件外链网站
  • 做外贸平台还是网站网店推广方式
  • 个人网站做音乐网要备文化太原好的网站制作排名
  • 搜索推广网站哪家做的最好地域名网址查询
  • 个人网站源代码html友链互换平台推荐
  • 做电影网站有什么好处网站优化方案设计
  • 网站程序系统收录批量查询
  • 做内贸现在一般都通过哪些网站广告图片
  • flash制作教程李勇seo的博客
  • 最佳商城ui网站设计郑州seo方案
  • 湖南怀化疫情最新消息厦门seo推广外包
  • 甘州区建设局网站青岛百度网站排名
  • asp.net网站安装教程网络营销和网络推广
  • 网站公司做的网站点击率怎么查南京谷歌seo
  • 多人运动免费正能量网站链接杭州网站优化方案
  • 怎样自己免费搭建网站推广策划
  • 市场部做网站工作职责seo算法是什么
  • 商城类网站开发注册网站免费注册
  • 白沟做网站做网站怎么优化
  • 手机网站建设模板百度seoo优化软件
  • 阳信做网站关键词优化的作用
  • 美国一个人做的网站苏州网站建设方案
  • 长沙市师德师风建设网站百度搜索引擎技巧
  • 网站开发前端后端书籍seo推广任务小结
  • 网站定制公司报价挖掘关键词的工具
  • b2c商务网站建设全网整合营销
  • 库存网站建设哪家好seo外链自动群发工具
  • 白城学习做网站的学校网站数据统计
  • 攀枝花网站建设公司求个没封的网站2022
  • 成都疫情最新规定公告广西百度seo