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

济南网络公司排名/优化排名工具

济南网络公司排名,优化排名工具,wordpress flash插件下载,拟定网站优化方案选择排序与冒泡排序 本文将介绍选择与冒泡两种排序方法,并对这两种排序方法进行比较。 在此之前,我们讨论一下为什么需要进行排序。举个例子: 在一副未拆封的 扑克牌中找到黑桃A与在打完斗地主的一堆牌中找到黑桃A,哪个更简单是显…

选择排序与冒泡排序


  本文将介绍选择与冒泡两种排序方法,并对这两种排序方法进行比较。

  在此之前,我们讨论一下为什么需要进行排序。举个例子: 在一副未拆封的

扑克牌中找到黑桃A与在打完斗地主的一堆牌中找到黑桃A,哪个更简单是显而易

见的。在有序的牌组中我们都知道黑桃A是第一张牌;而在无序的牌组中,我们可

能要找(1~n-1)次才能确定哪张是黑桃A。所以在此例中,我们能看出排序可以

提高查找的效率。

下面来分别介绍两种排序方法

冒泡排序

  首先定义一组数组a[5]:

a[1]a[2]a[3]a[4]a[5]
9895859388

可以看出数组无序,下面我们用冒泡排序对其升序排序,冒泡排序的思路是:针对数组
一端为起点的一对数组元素进行比较,若为逆序,则两者互换(冒泡一次)。再到下一
对数组元素进行比较,数组中从第一对至最后一对数组元素的冒泡比较为一遍循环,n个
数组元素的数组中最多循环(n-1)遍,数组即成有序数组。
  下面对此实例进行冒泡排序:

数组元素原始数组第一遍第二遍第三遍第四遍
a[1]9885858585
a[2]9598888888
a[3]8595989393
a[4]9388959895
a[5]8893939598

(比较方向为从右往左)

代码实现

#include<stdio.h>
int main()
{int a[5],i,j,t;a[1]=98;a[2]=95;a[3]=85;a[4]=93;a[5]=88;for(i=1; i<=4; i++){//排序加工的遍数for(j=5; j>=i+1; j--){//比较的方向if(a[j]<a[j-1]){//每一遍排序中的元素间比较t=a[j];a[j]=a[j-1];a[j-1]=t;}}
return 0;
}

让i从1到n-1循环
让j从n到i+1循环
若a(j)与左边相邻数据逆序,则两者互换(冒泡一次)

选择排序

  依然是上述数组a[5],对数组升序排序。

a[1]a[2]a[3]a[4]a[5]
9895859388

  选择排序的思路(升序)是:数组从第1项元素开始处理,设变量k用来保存第i位置
上最终需放置元素的下标。把第i(1~(n-1))项元素作为最小值(暂时的),然后把第
i项元素与第j(i+1)至n项元素进行比较,每当发现逆序元素,则刷新k=j,直至与第n项元
素比较完成后,排序中的一遍循环就完成了。此时比较下标k与i的值是否相等,若不相等则
交换第i项与第k项的值;若相等则不变。然后开始下一遍循环直至排序结束。
实例分析:

数组元素原始数组第一遍第二遍第三遍第四遍
a[1]9885858585
a[2]9595888888
a[3]8598989393
a[4]9393939895
a[5]8888959598

代码实现

#include<stdio.h>
int main()
{int a[5];a[1]=98;a[2]=95;a[3]=85;a[4]=93;a[5]=88;int i,j,k,t;for(i=1; i<=4; i++){//让i从1到n-1循环k=i;//k用来保存第i位置上最终需放置元素的下标for(j=i+1; j<=5; j++){//比较第i+1到第n个数if(a[j]<a[k]){k=j;//把j值保存到k中(若有更小值,则更新k)}}if(i!=k){t=a[i];a[i]=a[k];a[k]=t;//若最小值不在前面,则交换}}return 0;} 

两个排序方法的比较

  我们了解了两种排序方法后,再对他们进行比较:
冒泡排序:

数组元素原始数组第一遍第二遍第三遍第四遍
a[1]9885858585
a[2]9598888888
a[3]8595989393
a[4]9388959895
a[5]8893939598
比较次数4321
交换次数3221

选择排序

数组元素原始数组第一遍第二遍第三遍第四遍
a[1]9885858585
a[2]9595888888
a[3]8598989393
a[4]9393939895
a[5]8888959598
比较次数4321
交换次数1111

  可以看出,选择排序相较于冒泡排序,节省了交换次数,效率更高。

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

相关文章:

  • 向国旗敬礼 做新时代好少年网站/百度搜索关键词排名人工优化
  • 怎么知道网站被百度k了/什么是精准营销
  • 洛阳做网站的/seo软件哪个好
  • 武汉汉口做网站公司/北京百度竞价
  • 新手学做网站的教学书/如何申请域名
  • 汕尾东莞网站建设/google ads
  • 网站功能建设模块/北京疫情最新消息情况
  • 为知笔记发布WordPress/江门搜狗网站推广优化
  • o2o 电商网站 微商城 ppt/帮忙推广的平台
  • 电子商务网站推广方法/长沙网站seo优化公司
  • 网站外包公司/搜索推广广告
  • 工商局网站清算组备案怎么做/苏州seo
  • 网站维护流程图/seo网站优化推广教程
  • 湖州建设局投标网站/商务软文写作300
  • 签名设计网站/靠谱seo外包定制
  • wordpress建教育教学网站/数据分析师培训需要多少钱
  • 做知识内容的网站与app/新手怎么推广自己的店铺
  • 黄岩做网站/最近三天发生的重要新闻
  • 网站源码获取在线/郑州网站关键词优化公司哪家好
  • 做网站设计的提成点是多少/英文外链平台
  • 重庆建设汽车系统股份有限公司/seo快速排名上首页
  • wordpress登陆失败/windows优化工具
  • 苏州企业网站设计制作/百度霸屏推广靠谱吗
  • 分类网站怎么做项目/海口百度seo公司
  • 做网站多少钱西宁君博领衔/百度竞价排名叫什么
  • flash网站全屏代码/制作自己的网站
  • 做婚礼邀请函网站/seo点击软件
  • mysql开发网站开发/怎样设计一个网页
  • 怎么给网站有一字做标记/seo搜索引擎优化薪酬
  • 一个小胖子从网站做任务的色情故事/短视频推广渠道
  • 前后端交流
  • 决策树学习全解析:从理论到实战
  • 业务系统跳转Nacos免登录方案实践
  • 【C++ 初级工程师面试--4】形参带默认值的函数,特点,效率,注意事项
  • .env 文件
  • 在纯servlet项目中,使用@WebFilter定义了多个filter,如何设置filter的优先级