希尔排序的基本思想:
希尔排序是基于插入排序的改进,由于插入排序对于已排好的数列操作时是高效的,但插入排序一般是比较低效的,因为一次只能移动一位。所以希尔排序先通过分组进行排序,直到分组增量为1 。
例:
arr = [49,38,04,97,76,13,27,49,55,65],分组增量为5时,红色数为一组,进行插入排序,依次循环遍历
arr = [13,38,04,97,76,49,27,49,55,65],遍历完成后,分组增量自减,
arr = [13,27,04,55,65,49,38,49,97,76],再继续对分组增量为2的组进行插入排序,直到分组增量为1
代码:
def shell_sort(lists): #希尔排序 count = len(lists) step = 2 group = count / step while group > 0: #通过group增量分组循环 for i in range(0, group): j = i + group while j < count: #分组中key值的索引,通过增量自增 k = j - group key = lists[j] while k >= 0: #分组中进行插入排序 if lists[k] > key: lists[k + group], lists[k] = lists[k], key else: break k -= group j += group group /= step return lists
相关推荐
基于python的排序算法-希尔排序Shell Sort
Python版数据结构与算法-排序算法源代码,实现了冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序源代码
python数据结构与算法分析,希尔排序法实现,希尔排序.py
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
个人总结十大排序算法的Python 3 实现,实测可运行。具体包括:-1 插排-2 希尔-3 选择-4 快排-5 冒泡-6 堆排-7 归并-8 计数-9 桶排-10 基数
python实现排序算法:冒泡排序,选择排序,插入排序,希尔排序,基数排序,桶排序,快速排序,归并排序,堆排序
数据结构与算法-Python语言案例实现十大经典排序算法一、 引言1.问题需求2.方法分类二、常见排序方法1. 选择排序(Selection Sort)2. 冒泡排序(Bubble Sort)3. 插入排序(Insertion Sort)4. 希尔排序(Shell ...
希尔排序算法python实现,可实现动态图实现,算法详细书名:https://blog.csdn.net/qq_28531269/article/details
5-03 选择排序算法及实现 5-04 插入算法 5-05 插入排序 5-06 插入排序2 5-07 希尔排序 5-08 希尔排序实现 5-09 快速排序 5-10 快速排序实现1 (1) 5-10 快速排序实现1 5-11 快速排序实现2 5-12 归并排序 5...
十大经典排序算法 (1)多种编程语言,JavaScript,python,go,php等语言。 (2)排序算法可以分为内部排序...常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序
各种内排序算法,Python实现。包括:冒泡排序,选择排序,插入排序,希尔排序,快速排序,堆排序,归并排序。程序中附有测试代码及性能比较代码。
各种排序算法的Python实现,包括:冒泡排序、堆排序、归并排序、快速排序、选择排序、希尔排序、直接插入排序
希尔排序是插入排序的优化,本资源是希尔排序python代码。
基于python的希尔排序算法设计与实现
主要介绍了python实现的希尔排序算法,实例分析了基于Python实现希尔排序的相关技巧,需要的朋友可以参考下
一般使用的八大排序算法是:插入排序、选择排序、冒泡排序、希尔排序、归并排序、快速排序、堆排序、基数排序,每个方法有其适合的使用场景,可以根据具体数据进行选择. 几个概念: 内部排序:排序期间元素全部...
基于python实现快速排序、插入排序、选择排序、希尔排序、冒泡排序、堆排序、合并排序
python冒泡排序 Python排序算法:堆排序、归并排序、简单选择排序、冒泡排序、希尔排序、直接插入排序
冒泡排序python,实现了常用的排序算法,包括:冒泡排序、直接插入排序、直接选择排序、希尔排序、归并排序、快速排序、堆排序,基于python 3 编程实现