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

php小说采集网站源码微信菜单怎么做微网站

php小说采集网站源码,微信菜单怎么做微网站,风机 东莞网站建设,网页详情页设计阅前声明:如果想直接了解冒泡排序的简化思想,请跳至文章尾部在介绍之前,我们先看一个用到该功能的实战训练(本人也是从中开始认识到冒泡排序这个函数定义)对于小白来说,我的思路如下:1.题目中涉…

阅前声明:如果想直接了解冒泡排序的简化思想,请跳至文章尾部

在介绍之前,我们先看一个用到该功能的实战训练(本人也是从中开始认识到冒泡排序这个函数定义)

对于小白来说,我的思路如下:

1.题目中涉及到三个数组,首先scanf两个整型变量m,n,其次定义三个变长数组arr[m + n] 、arr1[m] 、arr2[n];

2.我们了解到一个关键信息,两个输入的数组为升序类型,那么考虑两个数组中同下标值的元素进行比较,然后根据他们比较的结果在arr中进行元素输入;

具体操作编码如下:(为错误示范,可以理解和纠正一下编码思路)

void input_arr(int arr[], int a,int b)
{for (a = 0; a < b; a++){scanf("%d", &arr[a]);}
}
int smaller(int a, int b)
{if (a >= b)return b;elsereturn a;
}
int bigger(int a, int b)
{if (a >= b)return a;elsereturn b;
}
void print(int a , int arr[])
{int i;for (i = 0; i < a; i++){printf("%d ", arr[i]);}
}
int main()
{int m, n;scanf("%d %d", &m, &n);int arr1[m];//先将三个数组定义出来int arr2[n];int arr[m + n];int i,j;input_arr(arr1, i, m);//输入两个数组input_arr(arr2, i, n);int b = smaller(m,n);//先比较m,n;用新赋值的变量去参与后续判断int c = bigger(m,n);for (j = 0; j < c; j++)//利用变量j对arr数组的元素进行输入{if (j < b)//在相同下标区间内,进行大小判断,要将两个同数量的数组比较并放入新的数组中,需要2b个空间,下标位数为2b-1{arr[2 * j ] = smaller(arr1[j], arr2[j]);//先进行一个同下标数的大小判断,小的放在本位上,大的放在+1位上arr[2 * j + 1] = bigger(arr1[j], arr2[j]);if (j >= 1){arr[2 * j] = bigger(smaller(arr1[j], arr2[j]), arr[2 * j - 1]);//将新的小值与前一次的大值进行比较,纠正排序arr[2 * j - 1] = smaller(smaller(arr1[j], arr2[j]), arr[2 * j - 1]);}}//到这里完成了0-2b-1的数值输入,共2b个数else if (j == b){if (b == m) //判断元素数量大的一方数组后,对超出的第一位数组值进行比较{arr[2 * b] = bigger(arr2[b], arr[2 * b - 1]);arr[2 * b - 1] = smaller(arr2[b], arr[2 * b - 1]);}else{arr[2 * b] = bigger(arr1[b], arr[2 * b - 1]);arr[2 * b - 1] = smaller(arr1[b], arr[2 * b - 1]);}}else{if (b == m){arr[2 * b + j - b] = arr2[j];}else{arr[2 * b + j - b] = arr1[j];}}}for (int s = m + n - 1; s > 0; s--){int temp;if (arr[s] < arr[s - 1]){temp = arr[s];arr[s] = arr[s - 1];arr[s - 1] = temp;}}print(m + n, arr);return 0;
}//仅适合升序,且没有相同数的两个数组

在这个输入例子中,编写的代码出现了明显的错误,存在交替的大小变化,这是由于下标值相差太多的元素之间存在漏比较的情况,这是由于我们比较方式的局限性导致的,不要简单的把一个元素集合按照规定的容量分为多个比较区间,进行依次比较后纠正的元素排列就是我们想要的结果,下面是这种错误观念的示意图

一个数字,确定其在整型数组中正确的大小排序和下标值,应该将其和每一个元素进行比较。

那么我们可以得出冒泡排序的关键思想:

假设一个整型数组 中有N个元素,每一个元素确定自己的正确位置需要与剩余的N-1个元素进行比较,而每一个元素都需要完成这个过程 即 实现数组的正确排序,我们需要完成N * (N - 1)次的比较,细分下来就是C语言中的两个for循环的嵌套使用,具体如下:

	for (int a = 0; a < m + n; a++){for (int b = 0; b < m + n - 1; b++){int temp = 0;if (arr[b] > arr[b + 1]){temp = arr[b + 1];//此时的temp仅为存储数据的一个整型变量,无其他特殊含义arr[b + 1] = arr[b];arr[b] = temp;}}}

因此,我们可以简化并且加深对冒泡排序这个代码块的理解。

有表述不当的地方辛苦不吝赐教,三克油。

打怪升级中..................................................................................................................................

http://www.dtcms.com/a/547693.html

相关文章:

  • 深圳网站建设公司jm3qwordpress ie8 兼容
  • 网站建设实训存在的问题如何分析网站优缺点
  • 网站cms管理后台电话号码成都大丰五块石网站建设
  • 网站建设最基础是什么上海外包公司排行
  • 深圳自适应网站制作中国平安保险公司官网
  • 传媒免费网站建设小松建设官方网站
  • 具体的网站建设毕业设计做网站大小有什么要求
  • 网站设计宣传广告方案网站建设促销活动
  • 怎样做一个免费的网站怎么建立一个平台
  • 杭州城乡建设厅网站现在哪些网站做外贸的好做
  • 江苏住房和城乡建设局网站企业公司网站建设方案
  • 微信小程序开发注册宁波优化seo是什么
  • 微信建设网站哪家好泰安做网站建设的公司
  • 做网站 用什么空间网站在百度搜索不到
  • 微信做自己网站免费网站开发
  • 买了虚拟主机怎么做网站代码给WordPress添加
  • 苏州网站开发网站开发费用德国室内设计
  • 小规模开普票网站建设几个点哈市建设网站
  • 快速建设网站外链asp网站连接access数据库
  • wordpress有哪些网站东莞长安网站建设
  • 做电子商务网站 语言阳江市招聘最新招聘
  • 网站怎么做国际化公司只有一个设计师
  • 安徽美丽乡村建设网站万创网做的网站怎么样
  • 做的好的响应式网站中国软件邮箱登录入口
  • 两个男性做网站工装装修公司排名
  • 松江信息科技有限公司网站中国交通建设集团有限公司招标网
  • 深圳营销型网站联系方式wordpress author.php
  • 下载免费网站模板手机网站的页面大小
  • 制作精美网站建设服务周到网上商城平台
  • 网站建设与营销服务wordpress评论加图片