希尔排序

希尔,排序 · 浏览次数 : 4

小编点评

**博客链接:**https://www.cnblogs.com/zylyehuo/# _*_coding:utf-8_*_import randomdef insert_sort_gap(li, gap): for i in range(gap, len(li)): # i 表示摸到的牌的下标 tmp = li[i] j = i - gap # j指的是手里的牌的下标 while j >= 0 and li[j] > tmp: li[j + gap] = li[j] j -= gap li[j + gap] = tmp **总结:** 1. `insert_sort_gap()` 函数用于在牌堆 `li` 中插入排序的空隙。 2. 该函数使用一个循环对牌堆进行遍历,并根据空隙的长度插入排序牌。 3. 每个牌都会在插入之前检查其位置是否有效,并根据需要调整牌的顺序。 4. `shell_sort()` 函数用于对牌堆进行排序。 5. 在排序之前,该函数使用一个循环插入空隙,并最终排序牌堆。

正文

博客地址:https://www.cnblogs.com/zylyehuo/

# _*_coding:utf-8_*_

import random


def insert_sort_gap(li, gap):
    for i in range(gap, len(li)):  # i 表示摸到的牌的下标
        tmp = li[i]
        j = i - gap  # j指的是手里的牌的下标
        while j >= 0 and li[j] > tmp:
            li[j + gap] = li[j]
            j -= gap
        li[j + gap] = tmp


def shell_sort(li):
    d = len(li) // 2
    while d >= 1:
        insert_sort_gap(li, d)
        d //= 2


li = list(range(10))

random.shuffle(li)
print(li)

shell_sort(li)
print(li)

与希尔排序相似的内容:

希尔排序

博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ import random def insert_sort_gap(li, gap): for i in range(gap, len(li)): # i 表示摸到的牌的下标 tm

C#希尔排序算法

前言 希尔排序简单的来说就是一种改进的插入排序算法,它通过将待排序的元素分成若干个子序列,然后对每个子序列进行插入排序,最终逐步缩小子序列的间隔,直到整个序列变得有序。希尔排序的主要思想是通过插入排序的优势,减小逆序对的距离,从而提高排序效率。 希尔排序实现原理 首先要确定一个增量序列(初始间隔),

常见排序算法(汇总)

博客地址:https://www.cnblogs.com/zylyehuo/ 希尔排序:时间复杂度与选取的gap序列有关 计数排序: 时间复杂度:O(n) 桶排序: 时间复杂度:O(n+k) 最坏时间复杂度:O(n²k) 空间复杂度:O(nk) 基数排序: 时间复杂度:O(kn) 空间复杂度:O(k

C#开发一个混合Windows服务和Windows窗体的程序

很多时候,我们希望服务程序可以直接运行,或者可以响应一些参数,这时候,混合Windows服务和Windows窗体的程序就排上用场了。要实现同时支持Windows服务和Windows窗体,需要在启动的第一步时判断当前运行环境是否为服务模式,可以从以下几个方面进行判断: 当前用户名称:Environme

当小白遇到FullGC

本文记录了一次排查FullGC导致的TP99过高过程,介绍了一些排查时思路,线索以及工具的使用,希望能够帮助一些新手在排查问题没有很好的思路时,提供一些思路,让小白也能轻松解决FullGC问题

[转帖]老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!

https://bbs.huaweicloud.com/blogs/386325 【摘要】 traceroute 命令是一个有用且易于运行的网络诊断工具,本文给大家介绍了12个traceroute 命令示例,希望本文能够对您使用traceroute 命令有所帮助,如果有问题可以在下方评论区与我讨论!

记一次难忘的json反序列化问题排查经历

前言 最近我在做知识星球中的商品秒杀系统,昨天遇到了一个诡异的json反序列化问题,感觉挺有意思的,现在拿出来跟大家一起分享一下,希望对你会有所帮助。 案发现场 我最近在做知识星球中的商品秒杀系统,写了一个filter,获取用户请求的header中获取JWT的token信息。 然后根据token信息

wireshark分析tcp传输之文件上传速率问题

🔥🔥性能优化,服务监控方面的知识往往涉及量广且比较零散,希望将这部分知识整理成册,愿以后性能排查不再抓瞎。

真·Redis缓存优化—97%的优化率你见过嘛?

本文通过一封618前的R2M(公司内部缓存组件,可以认为等同于Redis)告警,由浅入深的分析了该告警的直接原因与根本原因,并根据原因提出相应的解决方法,希望能够给大家在排查类似问题时提供相应的思路。

案例分享-丢失的请求头

拍摄于富平中华郡 背景 今天组内一个小哥找我协助看一个问题,现象是他开放了一个Api给第三方调用,需要在http中传递一个名字为access_token的头,但是发布到测试环境以后却怎么也获取不到这个头,本地调试是没有问题的,希望协助看看。 排查 http传递头还会出问题,这都是很成熟的东西了,大概