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

高陵网站建设电商网站开发系列

高陵网站建设,电商网站开发系列,wordpress管理面板显示错乱,学编程后悔死了冒泡排序是初学C语言的噩梦#xff0c;也是数据结构中排序的重要组成部分#xff0c;本章内容我们一起探讨冒泡排序#xff0c;从理论到代码实现#xff0c;一步步深入了解冒泡排序。排序算法作为较简单的算法。它重复地走访过要排序的数列#xff0c;一次比较两个元素也是数据结构中排序的重要组成部分本章内容我们一起探讨冒泡排序从理论到代码实现一步步深入了解冒泡排序。排序算法作为较简单的算法。它重复地走访过要排序的数列一次比较两个元素如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢浮到数列的顶端。算法步骤比较相邻的元素。如果第一个比第二个大就交换他们两个。对每一对相邻元素作同样的工作从开始第一对到结尾的最后一对。这步做完后最后的元素会是最大的数。针对所有的元素重复以上的步骤除了最后一个。持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较。动图演示可能大家对文字描述不敏感但是这副图完美的呈现了冒泡排序的实现过程。本图来源于网络时间复杂度什么时候最快这点不用想当输入的数据已经是正序时都已经是正序了我还要你冒泡排序有何用啊。什么时候最慢这个就与上文相对应肯定是反序的时候最慢。分析最好情况是一次搞定时间复杂度是O(N)最坏的情况就是反序时间复杂度是O(N^2);平均情况时间复杂度是O(N^2);代码实现代码实现原理图我们先做一个交换函数void Swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; }实现代码我们先来一种常规的方法//冒泡函数 void Bubblesort(int* a, int n) {for (int i 0; i n; i){for (int j 1; j n - i; j){if (a[j - 1] a[j]){Swap(a[j - 1], a[j]);}}} }当然我们可以用”for“的方法实现也可以用“while”的方法实现。void Bubblesort(int* a, int n) { int end n;while ((end 0)){for (int i 1; i end; i){if (a[i - 1] a[i]){Swap(a[i - 1], a[i]);}}end--;} }有些小伙伴可能会对两次“for”才能实现,初学者就会产生疑惑为什么会这样那我们可以先写一趟冒泡排序void Bubblesort(int* a, int n) } //一趟for (int i 0; i n - 1 - j; i){if (a[i] a[i 1]){Swap(a[i], a[i 1]);}} }然后我们再来写整个冒泡排序void Bubblesort(int* a, int n) } //一趟for(int j 0; j n; j){for (int i 0; i n - 1 - j; i){if (a[i] a[i 1]){Swap(a[i], a[i 1]);}}} }看到这里我们有些小伙伴可能对总数是“n”还是“n-1”有些疑问。其实这里我们如果用仔细看可以发现前者是以“j 1”开始后者是以“0”开始所以造成了不同。我们接着改一下提升一下效率。我们想一下假如我们在交换以后接下来的数组已经是有序的了那么我们就没必要交换了。void Bubblesort(int* a, int n) {for (int j 0; j n - 1; j){int exchange 0;for (int i 0; i n - 1 - j; i){if (a[i] a[i 1]){Swap(a[i], a[i 1]);exchange 1;}}if (exchange 0){break;}} }这样我们就完成了总结我们用C语言多种方式实现了冒泡排序冒泡排序实现本身不难大家多多体会尝试自己实现代码才能够真正的掌握这些参考代码希望能够给大家带来帮助。欢迎大家点赞和收藏。
http://www.dnsts.com.cn/news/249865.html

相关文章:

  • wordpress代码实现网站地图php网站建设外国参考文献
  • 企业营销网站服装设计手稿
  • 全校网站建设与管理网站建设zgkr
  • 电子商务网站建设与维护课程总结wordpress固定连接nginx
  • 如何看到网站做哪些关键字广西柳州网站制作公司
  • 用什么工具做网站视图qq音乐如何做mp3下载网站
  • 群晖个人网站建设最好的购物网站排名
  • 兰州网站关键词优化在国外做购物网站
  • 营销型网站建设哪好定做app需要多少钱
  • 重庆专门做网站的公司泰格豪雅手表官方网站
  • 上海做展会的网站都有哪些中国建设银行官方网站 认证
  • 诚信网站认证必需做吗昆山规模的网站建设公司有哪些
  • 广州微网站建设平台企业邮箱忘记密码怎么找回
  • 上海网站建设最好的公司高校门户网站系统
  • 写作网站云简洁印象wordpress企业主题
  • 阿里云快速做网站百度投诉中心24人工
  • 怎么把网站排名到百度前三名爱站工具的功能
  • 安阳哪有做网站的网站页面优化工具
  • 网站建设用阿里云的虚拟主机网站设计机构图
  • 中国建设银行个人卡信息网站凡科网站为什么免费做网站
  • seo网络营销招聘苏州网站优化建设
  • 建设通网站是什么性质如何推广自己网站
  • 深圳 营销型网站建设淘宝做导航网站
  • 网站建设毕业设计心得如何关闭网站
  • 昆明做网站推wordpress添加下载按钮
  • 电子商务的网站开发的工作内容杭州平面设计公司
  • 学生做义工网站京伦网站建设
  • 鄂州网站网站建设wordpress千万数据
  • 哈尔滨专业网站制作公司软件开发项目管理软件哪个好
  • 模板网站源码电子商务网站建设与管理 技能实训