ui设计做网站淘宝网站官网

张小明 2026/1/8 6:36:40
ui设计做网站,淘宝网站官网,wordpress标签页插件,什么网站找厂做袜子目录 直接插入排序和希尔排序 直接插入排序 ​编辑 单趟 全过程 希尔排序 简单版本希尔排序 完整版希尔排序 选择排序 算法简介 代码实现 直接插入排序和希尔排序 直接插入排序实际上可以视作是希尔排序的组件#xff0c;所以我这里将直接插入排序和希尔排序放到一…目录直接插入排序和希尔排序直接插入排序​编辑单趟全过程希尔排序简单版本希尔排序完整版希尔排序选择排序算法简介代码实现直接插入排序和希尔排序直接插入排序实际上可以视作是希尔排序的组件所以我这里将直接插入排序和希尔排序放到一起了直接插入排序下面是直接插入排序的升序例子我们可以看到直接插入排序就是将一个值“拿出来”将他和他将要插入的值的前一个值依次对比如果拿出来的值小于该值就将拿出来的值插入到前面比较过的位置此时break如果拿出来的值大于该值就将对比后的值向后挪继续向前遍历单趟void InsertSort(int* arr, int n) { int end;//按下不表芝士拿出来的值的上一个值的下标 int temp arr[end 1]; while (end 0) { //当arr[end]大于temp是继续遍历 if (arr[end] temp) { arr[end 1] arr[end]; end--; } else { break; } } arr[end 1] temp; }这里我将最后插入做了统一处理当在end0时找到了合适的插入位置此时end1位置上的数已经移动到了上一个end1的位置上按照此时的位置就是end2,相当于是此时end1上的值是无效的此时我们将temp赋值给arr[end1]当在end0的范围内都没有找到合适得插入位置此时end-1(刚刚跳出循环)end1正好是0没有越界也符合实际此时temp是最小的插到最前面。全过程void InsertSort(int* arr, int n) { for (int begin 0; begin n - 1; begin) { int end begin; int temp arr[end 1]; while (end 0) { //当arr[end]大于temp是继续遍历 if (arr[end] temp) { arr[end 1] arr[end]; //这一步是挪动arr中的值 end--; } else { break; } } arr[end 1] temp; //这里将所有的情况统一处理并处理了end -1的边界情况 } }这里相当于是每次都对begin1(也是end1)的数据进行排序所以for循环是这样写的for (int begin 0; begin n - 1; begin)这里的直接插入排序实际上改几下就是希尔排序希尔排序希尔排序Shell Sort全称“缩小增量排序”Diminishing Increment Sort是插入排序的一种更高效的改进版本直接插入排序在碰到全是逆序的数据使会变得非常的坑这时希尔排序就通过将数据大踏步的向后调整的预排序使数据更趋向于有序从而大大减少了计算量希尔排序的本质是分组。它不再把数组看作一个整体而是根据一个“增量”gap将数组分割成若干个子序列这个过程中所有的值都被遍历了一遍。希尔排序通过让元素“跳跃式”地向最终位置移动大幅减少了数据交换和移动的次数简单版本希尔排序我们先写一个gap3的只进行一次预排序的希尔排序void ShellSort(int* arr, int n) { int gap 3; for(int i 0; i gap; i)//分组写法 { for (int begin i; begin n - gap; begin gap) { int end begin; int temp arr[end gap]; while (end i) { if (arr[end] temp) { arr[end gap] arr[end]; end--; } else { break; } } arr[end gap] temp; } } for (int begin 0; begin n - 1; begin) { int end begin; int temp arr[end 1]; while (end 0) { if (arr[end] temp) { arr[end 1] arr[end]; end--; } else { break; } } arr[end 1] temp; } }这个希尔排序只进行了一次粗排而且gap也是写死的这实际上是不够完善的对于大量的数据只进行这一次预排序显然是不够的这时我们就应该将gap写成动态的完整版希尔排序这里的gap取值也是有讲究的gap取得大一点跳得更快但是排的数据有序性较差gap取得小一点跳得更慢但是排的数据有序性较好学术界经过研究得出每次gap除3是最好的整个排序算下来的时间复杂度是O(n^1.3)void ShellSort(int* arr, int n) { int gap n / 3 1; //这里的do_while是一个小巧思当gap1时可以只进行一次排序,在首个gap do { //先使用再改变gap for (int j 0; j gap; j) { for (int i j; i n - gap; i gap) { int end i; int temp arr[end gap]; while (end j)//这里是一个边界条件我们应该将预排序视作是划分了一个新的组 { if (arr[end] temp) { arr[end gap] arr[end]; end - gap; } else { break; } } arr[end gap] temp; } } gap gap / 3 1; } while (gap 1); }选择排序算法简介选择排序是一种简单直观的排序算法。它的工作原理是在未排序序列中找到最小或最大元素将其存放到排序序列的起始位置然后再从剩余未排序元素中继续寻找最小或最大元素放到已排序序列的末尾重复以上步骤直到所有元素均排序完毕代码实现void SelectSort(int* arr, int n) { int begin 0, end n - 1; while (begin end) { int max begin, min begin; for (int i begin 1; i end; i) { if (arr[max] arr[i]) { max i; } if (arr[min] arr[i]) { min i; } } Swap(arr[begin], arr[min]); if (begin max) max min; Swap(arr[end], arr[max]); begin; end--; } }这里有一步需要解释一下if (begin max) max min;这一步是为了处理beginmax的边界情况示例arr [5, 1, 4, 2, 3]第一轮循环begin 0,end 4max 0(arr[0]5是最大值)min 1(arr[1]1是最小值)如果没有这一步的话直接交换arr[begin]和arr[min]会导致max指向的值被移动后面的逻辑就错了。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

苏州市住房和城乡建设局网站地震局国外外链平台

今天翻后台数据时,才猛然发觉我们的小红书创作工具,已经悄悄上线一个半月了。回想刚启动那会儿,团队还在忐忑——怕功能太单一,满足不了创作者的多样需求,没想到现在合作伙伴已经逼近400人,工具实际使用者也…

张小明 2025/12/28 22:41:20 网站建设

怎么建立和设计公司网站电商网页设计教程

3000亿参数效率革命:ERNIE 4.5如何用异构MoE架构重塑企业AI格局 【免费下载链接】ERNIE-4.5-300B-A47B-Base-PT 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-300B-A47B-Base-PT 导语 百度ERNIE 4.5系列大模型以3000亿总参数、仅激活470亿…

张小明 2025/12/28 22:39:19 网站建设

网站开发人员配备怎样把网站上传到服务器上

第一章:Open-AutoGLM隐私数据访问审计概述在人工智能系统日益依赖大规模数据训练的背景下,Open-AutoGLM作为一款开源的自动推理语言模型框架,其对隐私数据的处理机制成为安全合规的核心关注点。隐私数据访问审计旨在追踪、记录并分析系统中敏…

张小明 2025/12/28 22:37:17 网站建设

学院二级网站建设方案模板甘孜州住房城乡建设局网站

WPF 中使用形状进行绘图指南 在 WPF(Windows Presentation Foundation)里,2D 绘图的 API 既广泛又强大。本文将带你快速掌握使用 WPF 进行形状绘图的基础知识,为你后续深入学习打下基础。 1. 基本形状概述 WPF 内置了多种基本形状,这些形状的类都位于 System.Windows.…

张小明 2025/12/28 22:35:15 网站建设

通辽市北京网站建设建设集团网站公司

日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(30):第8科1、前言(1)情况说明(2)工程师的信仰2、知识点1ー にすぎない2ー Nさえ&#xff…

张小明 2025/12/30 0:39:42 网站建设

网站上发布的内容字体多少合适汉阳网站建设

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个系统优化配置工具,专门针对战网更新服务保持活跃的需求。功能包括:1) 一键修改电源高性能模式 2) 设置BattlSvc服务为自动延迟启动 3) 创建防止系统…

张小明 2025/12/29 23:15:42 网站建设