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

65平米装修全包多少钱seo技术博客

65平米装修全包多少钱,seo技术博客,wordpress的数据库在哪里,沈阳优化网站文章目录 #x1f412;个人主页#x1f3c5;算法思维框架#x1f4d6;前言#xff1a; #x1f380;插入排序 时间复杂度O(n^2)#x1f387;1. 算法步骤思想#x1f387;2.动画实现#x1f387; 3.代码实现 #x1f380;希尔排序 时间复杂度O(n*logn~n^2)希尔排序的设… 文章目录 个人主页算法思维框架前言 插入排序 时间复杂度O(n^2)1. 算法步骤思想2.动画实现 3.代码实现 希尔排序 时间复杂度O(n*logn~n^2)希尔排序的设计依据1. 算法步骤思想2、动画演示3.代码实现 个人主页 算法思维框架 前言 本篇博客主要以介绍十大排序算法中的插入排序和希尔排序有详细的图解、动画演示、良好的代码注释帮助加深对这些算法的理解进行查漏补缺~ 插入排序 时间复杂度O(n^2) 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴但它的原理应该是最容易理解的了因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法它的工作原理是通过构建有序序列对于未排序数据在已排序序列中从后向前 扫描找到相应位置并插入。 1. 算法步骤思想 将待排序序列第一个元素看做一个有序序列把第二个元素到最后一个元素当成是未排序序 列。 从头到尾依次扫描未排序序列将扫描到的每个元素插入有序序列的适当位置。如果待插入的元素与有序序列中的某个元素相等则将待插入元素插入到相等元素的后面。 2.动画实现 3.代码实现 public void sort(int[] arr){if(arrnull||arr.length2){return;}//思路先分为有序区间【】与无序区间【】默认数组中第一个元素在有序区间内找到待插入元素insertVal与有序区间的最后一个元素比较//如果insertVal此有序的值有序值向后覆盖往前接着比直到找到插入即可如果找到头都没有放到队首for (int i 1; i arr.length ; i) {//【无序区间】int insertValarr[i];boolean flagtrue;//判断是否找到了for (int j i-1; j 0 ; j--) {//【有序区间】if(insertValarr[j]){//向后覆盖arr[j1]arr[j];}else {//找到了arr[j1]insertVal;flagfalse;//判断已经找到了break;}}//如果找到头都没有最小的if(flag){arr[0]insertVal;}}}希尔排序 时间复杂度O(n*logn~n^2) 希尔排序Shell Sort 是一种插入排序的改进版本它通过将待排序的元素分成若干个子序列对每个子序列进行插入排序最终逐步缩小子序列的长度直到整个序列变为有序。 希尔排序的时间复杂度取决于选择的间隔序列。一般而言希尔排序的最坏时间复杂度为O(n^2)其中n是要排序的元素个数。但在实际应用中希尔排序通常表现得比这个理论上界更好它的平均时间复杂度可以在O(n log n)到O(n^2)之间。 总体而言希尔排序在某些特定情况下可以比其他简单的排序算法更加高效但在大多数情况下现代排序算法如快速排序或归并排序更常被使用因为它们具有更好的平均时间复杂度。 希尔排序的设计依据 • 插入排序在对几乎已经排好序的数据操作时效率高即可以达到线性排序的效率 • 但插入排序一般来说是低效的因为插入排序每次只能将数据移动一位 希尔排序的基本思想是先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序待整个序列中的记录基本有序时再对全体记录进行依次直接插入排序。 1. 算法步骤思想 选择一个增量序列 t1t2……tk其中 ti tj, tk 1 按增量序列个数 k对序列进行 k 趟排序 每趟排序根据对应的增量 ti将待排序列分割成若干长度为 m 的子序列分别对各子表进 行直接插入排序。仅增量因子为 1时整个序列作为一个表来处理表长度即为整个序列的长 度。 2、动画演示 希尔排序的动画演示 3.代码实现 public void sort(int[] arr){if(arrnull||arr.length2){return;}//思路先以arr.length/2的步长分组每一个组进行插入排序// 再以arr.length/2/2的步长分组每一个组进行插入排序直到步长为1进行整个数组的插入排序//【希尔排序的优势在于插入排序对 部分有序的序列 排序非常高效】for (int k arr.length/2; k 1; k/2) {//计算步长//i表示第一组中第二个元素【也就是无序区间的第一个元素】//里面是一个插入排序for (int j k; j arr.length ; j) {//每加一次就换一个组进行一‘步’插入排序直到数组末尾int insertValarr[j];//每个组的无序区间待插入的元素boolean flagtrue;for (int i j-k; i 0; i-k) {//因为每k个步长的元素为一组,每组有序区间的最后一个元素if(arr[i]insertVal){arr[ik]arr[i];}else {//找到待插入的位置了arr[ik]insertVal;flagfalse;break;//退出循环}}//验证极端情况待插入值是这个组中最小的if(flag){arr[j%k]insertVal;}}}}
http://www.pierceye.com/news/368565/

相关文章:

  • 双语网站系统wordpress page 父页面
  • 连云港做网站设计稿定设计官网入口
  • 建筑网站推荐wordpress hook api
  • 昆明做网站公司哪家好安卓优化
  • 魔站建站系统哪家好国内知名的包装设计公司
  • 福田区住房和建设局网站早晨设计 做网站设计吗
  • 郑州轨道网站开发手机怎么做动漫微电影网站
  • vscode网站开发昆明做网站找启搜网络
  • 如何评估网站虚拟商品交易网站建设
  • 太原网站优化教程pycharm做网站
  • 哪些网站做英语比较好免费下载模板ppt
  • 网站建设运营计划书wordpress 维护页面
  • 襄阳定制型网站开发前端网页设计招聘
  • 网站备案报价深圳市住房和建设局官网首页
  • 宁波江北区网站推广联系方式做一个论坛网站要多少钱
  • 网站制作无锡台州建设工程网站
  • 云网站 制作如何做一个网页
  • 微信免费建站新建网站站点的
  • 云网站制作的流程世界500强企业排名
  • 巨久科技网站建设做出个人网站什么水平
  • 做外贸网站怎么做做网站3个月
  • 县局网站建设招标网站建设人文类
  • 网站开发亿玛酷给力5上海logo在线制作
  • 网站重新备案搞个网站需要多少钱
  • 海南微信网站制作平台网络计划的优化
  • 域名的正确书写格式自动seo优化
  • 怎样在网站做友情链接网页什么设计
  • 做seo网站营销推广南宁建设职业技术学院招聘信息网站
  • 网站建设全网推广小程序手机网站怎么优化
  • wordpress 网站logowin系统没有wordpress