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

转 如何用java做网站百度指数查询官方下载

转 如何用java做网站,百度指数查询官方下载,网站术语,什么建站程序好收录希尔排序是插入排序的改进版,通过将原始数组分成多个子序列进行间隔插入排序,逐步缩小间隔直至为1,最终完成整体排序。它也被称为缩小增量排序。 希尔排序步骤 选择增量序列(Gap Sequence):确定一个递减的…

希尔排序是插入排序的改进版,通过将原始数组分成多个子序列进行间隔插入排序,逐步缩小间隔直至为1,最终完成整体排序。它也被称为缩小增量排序

希尔排序步骤

  1. 选择增量序列(Gap Sequence):确定一个递减的间隔序列(如 n/2, n/4, ..., 1)。

  2. 分组插入排序:对每个间隔 gap,将数组分成 gap 个子序列,分别进行插入排序。

  3. 逐步缩小间隔:重复上述过程,直到 gap = 1,此时数组基本有序,最后进行一次标准插入排序。

常用的增量序列

  • 希尔增量序列:gap = n / 2 , n/4, n/8... ,其中n为原始数组的长度,这是最常用的序列,但却不是最好的。
  • Hibbard序列:(1, 3, 7, 15, ..., 2^k - 1) 公式:gap = 2^k-1, ..., 3, 1

  • Sedgewick序列:(1, 5, 19, 41, ...) 公式:gap = 9 * 4^i - 9*2^i + 1  或gap = 4^i - 3 * 2^i + 1  

代码实现

package Sort;public class ShellSort {public static void main(String[] args) {int[] res = getShellSort(new int[]{4,8,6,9,2,5,3,1,7});for (int i = 0; i < res.length; i++) {System.out.print(res[i]+" ");}}public static int[] getShellSort(int[] nums){int len = nums.length;int currentNum;//按增量分组后,每个分组中//gap指用来分组的增量,会依次递减,直到gap=1,一般gap递减可使用/2来实现int gap = len / 2;while (gap > 0){// 对每个子序列进行插入排序for (int i = gap; i < len; i++) {currentNum = nums[i];//组内已被排序数据的索引int preIndex = i - gap;//在组内已被排序过数据中倒序寻找合适位置,如果当前待排序数据更小//则将比较的数据在组内后移//插入排序逻辑(间隔为 gap)while (preIndex>=0 && currentNum < nums[preIndex]){nums[preIndex + gap] = nums[preIndex];preIndex -= gap;}//循环结束,说明已经找到当前待排序数据的合适位置,进行插入。nums[preIndex + gap] = currentNum;}gap /= 2;}return nums;}
}
时间复杂度
  • 最坏情况:取决于增量序列(Gap Sequence)。

    • Shell 原始序列(n/2, n/4, ..., 1):最坏时间复杂度为 O(n²)

    • Hibbard 序列(1, 3, 7, 15, ..., 2^k - 1):最坏时间复杂度为 O(n^(3/2))

    • Sedgewick 序列(1, 5, 19, 41, ...):最坏时间复杂度为 O(n^(4/3))

  • 最好情况:序列已经基本有序,此时希尔排序接近 O(n log n)(取决于增量序列)。

  • 平均情况

    • Shell 原始序列:平均时间复杂度 O(n^(3/2)) ~ O(n²)

    • 优化增量序列(如 Sedgewick):平均时间复杂度 O(n log n) ~ O(n^(4/3))

空间复杂度
  • O(1)(原地排序),仅需常数级额外空间(如 currentNum变量)。

http://www.dtcms.com/wzjs/477649.html

相关文章:

  • 商务网站的特点关键词com
  • 专注于上海seo做网站建设网络优化培训
  • 做网站app需要懂些什么软件营销推广有哪些形式
  • 网站建设找哪家好怎样优化网站关键词排名靠前
  • wordpress编辑写文章失败seo排名优化关键词
  • 有设计感的网站今日油价92汽油
  • 做h的动漫在线观看网站网站seo应用
  • 找人做网站需要什么游戏推广一个月能拿多少钱
  • 淘宝内部券网站建设济南网站建设哪家专业
  • 台州网站开发青岛百度推广优化
  • 动态网站开发组合如何在手机上制作网站
  • 电子商务网站建设调研报告nba最新排行
  • 门户网站建设的报价上海网站设计公司
  • 常用的网站有哪些搜索引擎优化的内容有哪些
  • 石家庄大型网站建站外贸seo推广
  • 网页设计与网站建设实训报告免费发布推广信息网站
  • 注册官网百度视频排名优化
  • 网站开发的硬件环境和软件怎么写宁波网站seo哪家好
  • 电子商务网站建站青岛关键词优化seo
  • 鄂州网站制作百度广告搜索推广
  • 加强政府网站建设讲话全国seo搜索排名优化公司
  • 旅游网站首页设计模板竞价推广外包
  • java除了做网站百度seo推广价格
  • 网站备案域名证书百度搜索页
  • 中山建设工程招聘信息网站小红书关键词检测
  • wordpress开启评论验证码长春seo快速排名
  • 国内疫情最新数据消息太原seo网站管理
  • 域名备案怎么关闭网站在哪里查关键词排名
  • 快速做网站的技术艺考培训学校
  • 做视频好用的素材网站餐饮最有效的营销方案