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

网站做外链怎么样防城港装修公司口碑排行

网站做外链怎么样,防城港装修公司口碑排行,国内做医疗耗材的网站,进度环wordpress前言#xff1a;前面我们已经学过了许许多多的排序方法#xff0c;如冒泡排序#xff0c;选择排序#xff0c;堆排序等等#xff0c;那么我们就来将排序的方法总结一下。 我们的排序方法包括以下几种#xff0c;而快速排序和归并排序我们后面进行详细的讲解。 直接插入… 前言前面我们已经学过了许许多多的排序方法如冒泡排序选择排序堆排序等等那么我们就来将排序的方法总结一下。 我们的排序方法包括以下几种而快速排序和归并排序我们后面进行详细的讲解。 直接插入排序 void InsertSort(int* a, int n) {// [0, end] end1for (int i 0; i n - 1; i){int end i;int tmp a[end 1];while (end 0){if (tmp a[end]){a[end 1] a[end];--end;}else{break;}}a[end 1] tmp;} } 直接插入排序顾名思义把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中直到所有的记录插入完为止得到一个新的有序序列 。 我们用一个变量来保存我们插入数据的原数组中的后一个数据我们排的是降序那么我们的后一个数据比前一个数据大的话我们的后一个数据tmp就被前一个覆盖直到end0或者我们的后一个数据比前一个小我们就跳出循环我们保存的数据就等于我们跳出循环的这个数。 希尔排序 void ShellSort(int* a, int n) {int gap n;// gap 1时是预排序目的让他接近有序// gap 1是直接插入排序目的是让他有序while (gap 1){//gap gap / 2;gap gap / 3 1;for (int i 0; i n - gap; i){int end i;int tmp a[end gap];while (end 0){if (tmp a[end]){a[end gap] a[end];end - gap;}else{break;}}a[end gap] tmp;}}希尔排序的思想是先选定一个整数把待排序文件中所有记录分成个组所有距离为的记录分在同一组内并对每一组内的记录进行排序。然后取重复上述分组和排序的工作。当到达1时所有记录在统一组内排好序。 我们利用希尔排序法可以将数组分成gap组gap是我们没组两个树之间的间隔 如果我们的gap是3时我们就分成了三组当gap等于0时我们的红色这组就进行插入排序当gap为1时我们蓝色这组就进行插入排序当gap为2时我们绿色这组就进行插入排序这样我们将完成了第一趟排序。我们要完成整个排序的话我们就得在嵌套一层循环我们的gap大于1时就进行预排序我们的gap为1时就是最后一趟排序我们的gap无论是几只要最后gap的值为1我们就完成了排序。 选择排序 void Swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; } void SelectSort(int* a, int n) {int begin 0, end n - 1;while (begin end){int mini begin, maxi begin;for (int i begin 1; i end; i){if (a[i] a[mini]){mini i;}if (a[i] a[maxi]){maxi i;}}Swap(a[begin], a[mini]);if (maxi begin){maxi mini;}Swap(a[end], a[maxi]);begin;--end;} }我们这里用两个变量来保存小数和大数的下标我们的后面循环里的数如果比下标为0的数小的话小数据mini的下标就是我们比第一个数据小的数据i的坐标我们排序排的是升序我们的第一个数就是应该是下标为mini的数据所以我们将就下标为mini的数据与第一个数据交换们的后面循环里的数如果比下标为0的数大的话就是存放大数据下标为maxi我们就用最后一个数据和下标为maxi的数据交换。如果我们最后循环退出的时候我们的maxi还等于begin那么我们的下标为begin的数据就是最小的。 堆排序 void Swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; } void AdjustDown(int* a, int size, int parent) {int child parent * 2 1;while (child size){// 假设左孩子小如果解设错了更新一下if (child 1 size a[child 1] a[child]){child;}if (a[child] a[parent]){Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} }// 升序 void HeapSort(int* a, int n) {// O(N)// 建大堆for (int i (n - 1 - 1) / 2; i 0; --i){AdjustDown(a, n, i);}// O(N*logN)int end n - 1;while (end 0){Swap(a[0], a[end]);AdjustDown(a, end, 0);--end;} }我们要排升序所以我们需要建立一个大堆大堆的特点是子节点大于根节点我们通过不断将根节点和最后一个节点交换进行向下调整我们的数据大的节点就会沉在底下而小的节点就会浮在上面最后我们通过遍历就能够输出升序的数据。 冒泡排序 void Swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; } void BubbleSort(int* a, int n) {for (int j 0; j n; j){bool exchange false;for (int i 1; i n - j; i){if (a[i - 1] a[i]){Swap(a[i - 1], a[i]);exchange true;}}if (exchange false)break;}冒泡排序我们很早之前就已经了解过了我这里就不多赘述了如果有疑问的话就看我之前的文章 https://blog.csdn.net/Lehjy/article/details/132266676相信以你的聪明才智一定可以完美的解决。 最后感谢大家一如既往的支持谢谢大家
http://www.pierceye.com/news/508242/

相关文章:

  • 快手刷评论推广网站网站几个数据库
  • 山东网站建设网站我国网站开发
  • 常见的网站类型有北京电力建设公司待遇
  • 网站分析流程wordpress表单统计插件下载
  • 南宁网站建设公司seo优化武鸣住房和城乡规划建设局网站
  • 在线制作网站门户站模板
  • 邵阳网站建设推广56m做图片视频的网站是什么
  • 如何提高网站的点击率域名空间网站推广
  • 上海松江做网站建设wordpress 拒绝连接
  • 有免费的个人网站吗富德生命人寿保险公司官方网站保单服务
  • 网站备案 子域名网页视频制作软件
  • 空间 网站网站建设哪个好
  • 公司网站域名价格云南免费网站建设
  • 网站跳转域名不变常见网站架构
  • 山东省建设厅电工证查询网站网站标题的选择
  • 网站建设是属于软件吗电话销售哪里找客户电话
  • 用vue做网站的实例网站制作郑州
  • 五个网站想自己在家做外贸网站
  • 收费的电影网站怎么做网页设计图片的应用
  • 班级网站建设步骤橘子皮主题wordpress
  • 网站模板源文件网站制作需求文档
  • 青岛注册公司网站建网站需要那些步骤
  • 深圳做网上商城网站小蘑菇网站建设软件
  • 广州住建网站网站空间购买价格
  • 金华永康网站建设公司做网站的优点
  • 有免费的微网站制作吗瑞安哪里有培训做网站的
  • 苏州住房和城乡建设局网站wordpress中文书
  • 盐城市滨海县建设局网站wordpress 4.8.1 漏洞
  • 荆州市城市建设投资开发有限公司网站百度人工服务24小时
  • 永久域名购买昆明网站建设优化企业