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

东莞做网站最好有哪些公司怎么推广淘宝店铺

东莞做网站最好有哪些公司,怎么推广淘宝店铺,完整网页开发,保定建设网站公司文章目录 前言一、希尔排序的思想二、使用步骤总结 前言 希尔排序可以说是插入排序的一种变种。无论是插入排序还是冒泡排序,如果数组的最大值刚好是在第一位,要将它挪到正确的位置就需要 n - 1 次移动。也就是说,原数组的一个元素如果距离它…

文章目录

  • 前言
  • 一、希尔排序的思想
  • 二、使用步骤
  • 总结


前言

希尔排序可以说是插入排序的一种变种。无论是插入排序还是冒泡排序,如果数组的最大值刚好是在第一位,要将它挪到正确的位置就需要 n - 1 次移动。也就是说,原数组的一个元素如果距离它正确的位置很远的话,则需要与相邻元素交换很多次才能到达正确的位置,这样是相对比较花时间了。希尔排序就是为了加快速度简单地改进了插入排序,交换不相邻的元素以对数组的局部进行排序。

一、希尔排序的思想

采用插入排序的方法,先让数组中任意间隔为 h 的元素有序,刚开始 h 的大小可以是 h = n / 2,接着让 h = n / 4,让 h 一直缩小,当 h = 1 时,也就是此时数组中任意间隔为1的元素有序,此时的数组就是有序的了。
为方便理解我还准备了图片:
在这里插入图片描述
如果还是不懂的话我还给你准备了优质的文章讲解:希尔排序

二、使用步骤

public class ShellSort {public static int[] shellSort(int arr[]) {if (arr == null || arr.length < 2) return arr;int n = arr.length;// 对每组间隔为 h的分组进行排序,刚开始 h = n / 2;for (int h = n / 2; h > 0; h /= 2) {//对各个局部分组进行插入排序for (int i = h; i < n; i++) {// 将arr[i] 插入到所在分组的正确位置上insertI(arr, h, i);}}return arr;}/*** 将arr[i]插入到所在分组的正确位置上* arr[i]] 所在的分组为 ... arr[i-2*h],arr[i-h], arr[i+h] ...*/private static void insertI(int[] arr, int h, int i) {int temp = arr[i];int k;for (k = i - h; k > 0 && temp < arr[k]; k -= h) {arr[k + h] = arr[k];}arr[k + h] = temp;}
}

总结

需要注意的是,对各个分组进行插入的时候并不是先对一个组排序完了再来对另一个组排序,而是轮流对每个组进行排序。

性质:
1、时间复杂度:O(nlogn)
2、空间复杂度:O(1)
3、非稳定排序
4、原地排序

http://www.ds6.com.cn/news/5061.html

相关文章:

  • 官方网站搭建要多少钱今日刚刚发生的国际新闻
  • 呼和浩特城乡建设委员会网站百度快照的作用是什么
  • 四川建设厅下载专区网站电商代运营公司
  • html网站支付链接怎么做开封网站推广公司
  • 企业网站建设方案报价营销推广方案案例
  • 本地服务器怎么做网站企业网站模板下载
  • 义乌注册公司流程和费用武汉官网优化公司
  • 网站制作滚动图片怎么做网站开发公司排行榜
  • 深圳市注册公司流程图自动app优化最新版
  • 有没有免费做任务赚钱的网站直通车怎么开才有效果
  • 上海做兼职哪个网站靠谱吗做seo是什么意思
  • 域名购买网站有哪些最有效的推广方式
  • 专做代购的网站即时热榜
  • wordpress 站群模板信息流推广
  • 网站开发技术有哪些东莞关键词优化实力乐云seo
  • 怎么套模板 网站福建seo快速排名优化
  • 洛阳网站推广公司2023新冠结束了吗
  • 公信域名和网站建设是一样的吗来宾seo
  • 顺德建网站江苏网站建设制作
  • 有做lol直播网站有哪些企业培训
  • 网站广告位开发一款app软件需要多少钱
  • 做任务 网站百度网络推广营销
  • 免费手机网站建设关键词排名批量查询
  • 做网站很赚钱百度系app有哪些
  • 本网站建设在美国公司全网推广
  • 网站开发者的设计构想专业营销团队外包公司
  • 深圳电商网站制作营销型企业网站有哪些平台
  • 武汉山水人家装饰公司北京网络推广优化公司
  • 最优网络做网站网络推广的网站有哪些
  • 减肥药做网站营销军事新闻最新