优化型网站的好处客户关系管理的内涵

web/2025/9/30 13:40:56/文章来源:
优化型网站的好处,客户关系管理的内涵,苏州新区城乡建设网站,企业网站有哪四种类型目录 一. 排序的概念及应用 1.1 排序的概念 1.2 常见的排序算法 二. 常见排序算法的实现(从小到大排序) 2.1 插入排序 2.1.1基本思想#xff1a; 2.1.2 直接插入排序 2.1.3 希尔排序( 缩小增量排序) 2.2 选择排序 2.2.1基本思想#xff1a; 2.2.2 直接选择排序: 2…目录 一. 排序的概念及应用 1.1 排序的概念 1.2 常见的排序算法 二. 常见排序算法的实现(从小到大排序) 2.1 插入排序 2.1.1基本思想 2.1.2 直接插入排序 2.1.3 希尔排序( 缩小增量排序) 2.2 选择排序 2.2.1基本思想 2.2.2 直接选择排序: 2.2.3 堆排序 一. 排序的概念及应用 1.1 排序的概念 排序 所谓排序就是使一串记录按照其中的某个或某些关键字的大小递增或递减的排列起来的操作。 稳定性 假定在待排序的记录序列中存在多个具有相同的关键字的记录若经过排序这些记录的相对次序保持不变即在原序列中r[i]r[j] 且 r[i]在r[j] 之前而在排序后的序列中 r[i]仍在r[j]之前则称这种排序算法是稳定的否则称为不稳定的。 内部排序 数据元素全部放在内存中的排序。 外部排序 数据元素太多不能同时放在内存中根据排序过程的要求不能在内外存之间移动数据的排序 1.2 常见的排序算法 二. 常见排序算法的实现(从小到大排序) 2.1 插入排序 2.1.1基本思想 直接插入排序是一种简单的插入排序法其基本思想是 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中直到所有的记录插入完为止得到 一个新的有序序列 。实际中我们玩扑克牌时就用了插入排序的思想 2.1.2 直接插入排序 当插入第 i(i1) 个元素时前面的 array[0],array[1],…,array[i-1] 已经排好序此时用 array[i] 的排序码与 array[i-1],array[i-2],…的排序码顺序进行比较找到插入位置即将 array[i] 插入原来位置上的元素顺序后移 思路: 从第二个元素i 2时开始插入, 将第i个元素放在tmp中, 设j i-1如果小标为j的值大于tmp, 说明tmp要插在j前面, 所以arr[j1] arr[j], 将j所指的值向后移动, 给i让出位置,  j继续向前移动 但如果j所指的值小于tmp, 则说明j的值的位置不需要变化, 说明tmp找到了自己的位置, 直接将arr[j1] tmp , 因为前面的数据已经有序, 所以直接跳出循环即可, 前面的元素不用比较, 一定是小于tmp的如果循环走完了, 即j -1了, 说明tmp是最小的一个数据, 直接放在数组的最前面即可, 前面已经腾出了位置,即 arr[j1] tmp 继续循环上述步骤, 指到将数组的元素全部插入 代码: public static void insertSort(int[] arr){for (int i 1; i arr.length ; i) {int tmp arr[i];int j i-1;for ( ; j 0; j--) {if(arr[j] tmp){arr[j1] arr[j];}else{//arr[j1] tmp;break;}}arr[j1] tmp;}} 直接插入排序的特性总结 元素集合越接近有序直接插入排序算法的时间效率越高 时间复杂度O(N^2) 空间复杂度O(1)稳定性稳定 2.1.3 希尔排序( 缩小增量排序) 希尔排序法又称缩小增量法。希尔排序法的基本思想是 先选定一个整数gap把待排序文件中所有记录分成多个组 所有距离为gap的记录分在同一组内并对每一组内的记录进行排序。然后缩小gap的值重复上述分组和排序的工作。当到达gap  1 时所有记录在统一组内排好序 。 思路: 首先我们要分组gap, 第一次分组, 分成数组长度的一半, 接下来分组的方式有很多, 可以gap gap/2, 可以gap gap/3 1 , 等等, 现在没有任何理论可以证明哪种分组最好, 这里我们使用gap gap/2分组分到所有的数据为一组, 即gap 1时,停止每一次分组, 我们都要对组内的元素进行排序, 我们选择的方法时直接插入排序, 可参考上述但需要注意的是, 如何找到组内的元素, 我们可以将i设成gap, 很巧妙的是, i此时正好是每个组内的第二个元素, 那么前面的元素, 即 j 就是i-gap, j的移动单位就为gap, i每次向后走1, 可以到下一个组进行排序, 当i走到数组的最后时, 每个组内的元素都是有序的 代码: public static void shellSort(int[] arr){int gap arr.length/2;while(gap! 1){gap gap/2;shell(arr, gap);}}private static void shell(int[] arr,int gap){for (int i gap; i arr.length; i) {int tmp arr[i];int j i-gap;for (; j0; j-gap) {if(arr[j] tmp){arr[jgap] arr[j];}else{break;}}arr[jgap] tmp;}} 希尔排序的特性总结  希尔排序是对直接插入排序的优化。  当gap 1时都是预排序目的是让数组更接近于有序。当gap 1时数组已经接近有序的了这样就会很快。这样整体而言可以达到优化的效果。我们实现后可以进行性能测试的对比。  希尔排序的时间复杂度不好计算因为gap的取值方法很多导致很难去计算因此在好些树中给出的希尔排序的时间复杂度都不固定 稳定性不稳定 2.2 选择排序 2.2.1基本思想 每一次从待排序的数据元素中选出最小或最大的一个元素存放在序列的起始位置直到全部待排序的数据元素排完 。 2.2.2 直接选择排序: 在元素集合 array[i]--array[n-1] 中选择关键码最大 ( 小 ) 的数据元素, 若它不是这组元素中的最后一个( 第一个 ) 元素则将它与这组元素中的最后一个第一个元素交换在剩余的array[i]--array[n-2] array[i1]--array[n-1] 集合中重复上述步骤直到集合剩余 1 个元素 思路1: 设i0, 将i存放在minIndex里, 假设i是最小值的下标遍历i后面的元素, 如果有比minIndex下标的值小的数据, 则更改minIndex的值, 即minIndex j遍历完成后, minIndex里面存放的是最小数据的值, 接着交换i和minIndex下标的值 注意: 此时不能写arr[i]  arr[minIndex], 如果这样写, 假设i下标存放的不是最小值, 那么用minIndex下标的值将i下标的值覆盖, 则会丢失i下标的值      4. 接着i, 循环上述步骤, 直到遍历完整个数组 代码: public static void selectSort(int[] arr){for (int i 0; i arr.length; i) {int minIndex i;for (int j i1; j arr.length; j) {if(arr[j] arr[minIndex]){minIndex j;}}swap(arr,i,minIndex);}}private static void swap(int[] arr,int i,int j){int tmp arr[i];arr[i] arr[j];arr[j] tmp;} 思路2: 相当于思路1的优化, 遍历一遍数组可以同时找出最小值和最大值left 和 right相当于思路1中i的作用i 相当于思路1中j的作用, 用来遍历数组(注意:此时要从left开始遍历, 而不是left1, 因为有可能left值就是最大值, 如果从left1开始, 则最大值找不到)minIndex 和 maxIndex作用同样是存放最小值下标和最大值下标 代码: public static void selectSort2(int[] arr){int left 0;int right arr.length -1;while(left right){for (int i left; i right ; i) {int minIndex left;int maxIndex right;if(arr[i] arr[minIndex]){minIndex i;}if(arr[i] arr[maxIndex]){maxIndex i;}swap(arr,left,minIndex);swap(arr,right,maxIndex);left;right--;}}}private static void swap(int[] arr,int i,int j){int tmp arr[i];arr[i] arr[j];arr[j] tmp;} 【 直接选择排序的特性总结 】  直接选择排序思考非常好理解但是效率不是很好。实际中很少使用  时间复杂度O(N^2)  空间复杂度O(1)  稳定性不稳定 2.2.3 堆排序 堆排序 (Heapsort) 是指利用堆积树堆这种数据结构所设计的一种排序算法它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆排降序建小堆。 思路: 建立大根堆交换堆顶元素和最后一个元素end, 这样就找到的最大的数放在最后向下调整成大根堆, 但不算最后一个结点, 因为最后一个结点已经在应该的位置, 这样堆顶元素又变成了除最后一个元素外最大的元素重复前两个步骤, 交换倒数第二个元素end--和堆顶元素, 这样就找到了倒数第二大的元素, 以此类推, 直到end0时, 说明已经全部有序, 输出即可 代码: public static void heapSort(int[] arr){createHeap(arr);int end arr.length-1;while(end 0){swap(arr,0,end);siftDown(arr,0,end);end--;}}private static void createHeap(int[] arr){for(int parent (arr.length-1-1)/2;parent 0;parent--){siftDown(arr,parent,arr.length);}}private static void siftDown(int[] arr, int parent, int len){int child (parent*2)1;while(child len){if(child 1 len arr[child1]arr[child]){child child1;}if(arr[child] arr[parent]){swap(arr,child,parent);parent child;child (parent*2)1;}else{break;}}} 【堆 排序的特性总结 】  堆排序使用堆来选数效率就高了很多。  时间复杂度O(N*logN)  空间复杂度O(1)  稳定性不稳定 未完待续...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保定网站建设与seo没有公司 接单做网站

你说怎么好刚才写【图吧小白教程】散热常识 的时候参考了一些资料,为此咱跑了不少网站关注了不少公众号,这年头有意思,干啥都要关注微信,然后就能拿到资料,我寻思我写这么多文章也没打算给咱自己的微信公众号引流呢&am…

莆田做网站公司平面设计机构培训

目录 1.consul介绍 ❤️❤️❤️ 2.安装 ❤️❤️❤️ 3.创建8006模块 ❤️❤️❤️ 4.创建80模块❤️❤️❤️ 1.consul介绍 ❤️❤️❤️ Consul 是一种用于服务发现、配置和分布式一致性的开源软件。它由HashiCorp开发和维护,可用于帮助构建和管理现代化的分布…

可以在网上接网站做的网址县科协微网站建设

我对java的八大排序算法进行了总结,以此文展示Java八大算法 常见排序算法如下: 1.直接插入排序 2.希尔排序 3.简单选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.基数排序 排序方法示例简介 直接插入排序 基本思想 通常人们整理桥牌的方法…

网站建设公司海南海南城乡与建设厅网站

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…

网站建设销售年终总结有哪些做软件的网站有哪些

1.File类概述及构造方法 2.File类创建功能 文件创建成功! 如果文件不存在,就创建文件,并返回true 如果文件存在,就不创建文件,并返回false 如果文件夹不存在,就创建文件夹,并返回true 如果文件…

网站名称 规则游戏推广话术技巧

2020年《纽约时报》调查显示,全球有超过1000万人以AI恋人作为伴侣;后浪发布的《2022年轻人未来恋爱白皮书》报告中显示,有近4成年轻人接受与虚拟人恋爱。随着人工智能技术的突破,越来越多年轻群体在AI伴侣软件亲手打造自己的理想恋…

深圳一定火网站建设龙华区是深圳最差的区

&#xfeff;<table><tr><td bgcolororange>本文仅供学习交流使用&#xff0c;如侵立删&#xff01;</td></tr></table> 记一次阿里云盾滑块验证分析并通过 操作环境 win10 、 macPython3.9selenium、pyautogui 分析 最近在做中国庭审…

织梦批量修改网站源代码备案网站主办者承诺书

对象共享 概述 除了用于实现引用计数内存回收机制之外&#xff0c;对象的引用计数属性还带有对象共享的作用。 在Redis中&#xff0c;让多个键共享同一个值对象需要执行以下两个步骤: 1.将数据库键的值指针指向一个现有的值对象2.将被共享的值对象的引用计数增一 目前来说…

江西赣建建设监理网站移动应用开发干什么的

前言我是从.net 4.5直接跳到.net core 3.x的&#xff0c;感觉asp.net这套东西最初是从4.5中的owin形成的。目前官方文档重点是讲路由&#xff0c;没有特别说明与传统路由的区别&#xff0c;本篇主要介绍终结点路由的相关概念和如何使用&#xff0c;不会详细介绍路由&#xff0c…

成都建设路小学网站个体工商户 网站备案

前言 Leetcode中有一道这样的题:给定两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。 如果正常的四则运算符号不允许使用&#xff0c;呢这道题的考点我觉得应…

网站制作有哪些企业ppt主题大全素材

假设你想做一个像微博短链接那样的短链接服务&#xff0c;短链接服务生成的URL都非常短例如: http://t.cn/E70Piib, 我们应该都能想到链接中的E70Piib对应的就是存储长链接地址的数据记录的ID&#xff0c;可是这个有大小写字母和数字构成的唯一ID是怎么生成的呢&#xff0c;刚学…

中国网站域名备案管理系统wordpress apply filters

基于python语言&#xff0c;采用经典自适应大邻域算法&#xff08;ALNS&#xff09;对 带硬时间窗的需求拆分车辆路径规划问题&#xff08;SDVRPTW&#xff09; 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整2.1 需求拆分2.2 需求拆分后的服务时长取值问题 3. 求解结果4…

免费创建网站平台六安网站制作哪里有

内容介绍&#xff1a; AI编译框架分为两种运行模式&#xff0c;分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行&#xff0c;但也支持手工切换为静态图模式。两种运行模式的详细介绍如下&#xff1a; 动态图模式&#xff1a; 动态图的特点是计算图的…

网站管理员招聘济南 规划 网站

java bean 验证这篇文章总结了一些简单&#xff0c;快速的示例&#xff0c;这些示例说明了您想使用Java Beans Validation API&#xff08;JSR 349&#xff0c;JSR 303&#xff09;进行的最常见操作。 记住&#xff0c;Beans Validation独立于Java EE。 尽管它是作为Java EE兼容…

什么软件可以做动画视频网站穆棱建设局网站

一.说明SpringSecurity是一个用于Java 企业级应用程序的安全框架,主要包含用户认证和用户授权两个方面.相比较Shiro而言,Security功能更加的强大,它可以很容易地扩展以满足更多安全控制方面的需求,但也相对它的学习成本会更高,两种框架各有利弊.实际开发中还是要根据业务和项目…

怎么把网站上传到域名柳州网站虚拟主机公司

引言 在当今数字化时代&#xff0c;编程已经成为一种极具创造力和趣味性的活动。通过编写代码&#xff0c;我们可以创造出各种各样的应用程序和游戏&#xff0c;其中包括经典的贪吃蛇游戏。本文将向您介绍如何使用 JavaScript 编程语言制作一个简单而有趣的贪吃蛇游戏&#xf…

网站集约化建设汇报目前什么编码做网站最好

网课地址&#xff1a;网络模型_二层转发原理&#xff08;三&#xff09;_哔哩哔哩_bilibili 一、路由交换 网络&#xff1a;用来信息通信&#xff0c;信息共享的平台。 网络节点&#xff08;交换机&#xff0c;路由器&#xff0c;防火墙&#xff0c;AP&#xff09;介质&#…

网站跟客户端推广怎么做江苏招标网

如何启动/停止/重启MySQL一、 启动方式1、使用 service 启动&#xff1a;service mysql start2、使用 mysqld 脚本启动&#xff1a;/etc/inint.d/mysql start3、使用 safe_mysqld 启动&#xff1a;safe_mysql&二、停止1、使用 service 启动&#xff1a;service mysql stop2…

台州网站建设方案抖音开放平台工会

网页图片显示不出来怎么办?文字与图片是构成一个网页的两个最基本的元素。你可以简单地理解为&#xff1a;文字&#xff0c;就是网页的内容。图片&#xff0c;就是网页的美观。除此之外&#xff0c;网页的元素还包括动画、音乐、程序等等。有时候我们浏览网页却发现图片显示不…

昆明大型网站建设费用苏州网站排名优化价格

在文件系统中&#xff0c;有三大缓冲为了提升效率&#xff1a;inode缓冲区、dentry缓冲区、块缓冲。(内核&#xff1a;2.4.37)一、inode缓冲区为了加快对索引节点的索引&#xff0c;引入inode缓冲区&#xff0c;下面我们看Linux/fs/inode.c代码。inode缓冲区代码1、一些数据结构…