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

网站建设j基本步骤快速排名优化怎么样

网站建设j基本步骤,快速排名优化怎么样,伊春网站开发,查询网站用什么做的目录: 冒泡排序 *核心思想 *分析 *代码 *优化 15.冒泡排序(bubble sort) *核心思想:两两相邻的元素进行比较,满足条件则两者交换 *分析 现要求升序排序 输入: 9 8 7 6 5 4 3 2 1 0 输出:0 1 2 3 4 5 6 7 8 9 下面展示一趟冒泡排…

目录:

冒泡排序

     *核心思想

     *分析

     *代码

     *优化

15.冒泡排序(bubble sort)

*核心思想:两两相邻的元素进行比较,满足条件则两者交换

*分析

现要求升序排序

输入: 9 8 7 6 5 4 3 2 1 0

输出:0 1 2 3 4 5 6 7 8 9

 下面展示一趟冒泡排序

图中显示:9被一步一步“冒泡”到最右边

可见:N个数字,第一趟冒泡排序需要(N-1)步

下图表示每趟冒泡排序后的结果

由图可知:N个数字,第一趟冒泡排序需要(N-1)步

                  N个数字,第二趟冒泡排序需要(N-2)步

                 N个数字,第三趟冒泡排序需要(N-3)步

                 ……

一共需要(N-1)趟

*代码

由上述分析,需要两个循环来控制趟数(i)和步数(j)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int n = 0;int arr[100] = { 0 };int tmp = 0;//输入元素printf("输入数组元素个数:");scanf("%d", &n);printf("输入数组元素:");for (int k = 0; k < n; k++){scanf("%d", &arr[k]);}//冒泡排序for (int i = 1; i <= n - 1; i++)//趟数{for (int j = 0; j <=n - i-1 ; j++)//步数{if (arr[j] > arr[j + 1]){tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}//打印结果for (int q = 0; q < n; q++){printf("%d ", arr[q]);}
}

 

*优化

反思:该代码是否有优化的空间?

对于上方的代码,当有10个元素时,无论元素怎么排列,一共需要9+8+7+6+5+4+3+2+1=(1+9)*9/2=45步

如 输入 9 0 1 2 3 4 5 6 7 8 一趟冒泡排序后就已经完成任务了,但仍然要执行剩下的44次,导致效率降低,而且并没有发生数组元素之间的交换

解决方法:有顺序时取消交换,提前退出循环,输出结果

回想标志寄存器(flag register)的概念:标志寄存器用于存储状态信息,这些状态信息可以影响程序的流程控制

同理可以在程序中创建“标志变量”flag来控制循环

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int n = 0;int arr[100] = { 0 };int tmp = 0;//输入元素printf("输入数组元素个数:");scanf("%d", &n);printf("输入数组元素:");for (int k = 0; k < n; k++){scanf("%d", &arr[k]);}int flag = 1;//冒泡排序for (int i = 1; i <= n - 1; i++)//趟数{for (int j = 0; j <= n - i - 1; j++)//步数{if (arr[j] > arr[j + 1]){tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;flag = 0;//发生交换flag置0}}if (1 == flag){break;//未发生交换则退出循环}}//打印结果for (int q = 0; q < n; q++){printf("%d ", arr[q]);}
}

http://www.mnyf.cn/news/45739.html

相关文章:

  • 做网站需要留什么条件百度推广代理商返点
  • 品牌网站如何做seo太原关键词优化报价
  • 做网站的材料怎么下载app到手机上
  • 公司做网站会计凭证怎么做青青河边草直播免费观看
  • h5页面用什么做网站建设推广优化
  • 广州市网站建设价格seo扣费系统
  • 上海网站制作培训班做网站怎么赚钱
  • 美国主机教育网站建设嘉峪关seo
  • 个人兼职做网站长沙网站制作费用
  • 哪个网站美丽乡村做的比较好长沙网站公司品牌
  • 网站建设专题seo网站优化案例
  • 对做网站有什么建议杭州网站优化多少钱
  • 网站不能自行备案吗湖南网站seo推广
  • 未来做那些网站能致富培训网址
  • 苏州有什么好玩的湖南seo推广系统
  • 网站建设维护是干什么广州百度推广电话
  • 做设计在哪个网站找图片seo课程培训机构
  • 国外免费psd网站信息流广告接单平台
  • 做网站的数据库的选择手机网站关键词快速排名
  • 电商网站 建设步骤手机seo排名软件
  • 寻花问柳一家专门做男人的网站seo研究
  • 网站建设试题南京seo优化公司
  • 国外有什么网站是做服装的推广网站排名优化seo教程
  • 品牌网站建设内容成人企业管理培训课程
  • 建设网站的获客渠道c++培训班学费一般多少
  • 在线代理浏览网站免费写文章免费的软件
  • 哪个云服务器便宜又好南京seo网络推广
  • 管理系统的设计与实现廊坊百度提升优化
  • 唯品会是哪做的网站百度识图扫一扫入口
  • 医疗器械网站备案前置审批事例知识搜索引擎