当前位置: 首页 > 编程笔记 >

python实现的希尔排序算法实例

谢璞
2023-03-14
本文向大家介绍python实现的希尔排序算法实例,包括了python实现的希尔排序算法实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了python实现希尔排序算法的方法。分享给大家供大家参考。具体如下:

def shellSort(items):
  inc = len(items) / 2
  while inc:
    for i in xrange(len(items)):
      j = i
      temp = items[i]
      while j >= inc and items[j-inc] > temp:
        items[j] = items[j - inc]
        j -= inc
      items[j] = temp
    inc = inc/2 if inc/2 else (0 if inc==1 else 1)
a = [35, -8, 11, 1, 68, 0, 3];
shellSort(a)
print a # [-8, 0, 1, 3, 11, 35, 68]

希望本文所述对大家的Python程序设计有所帮助。

 类似资料:
  • 本文向大家介绍java实现希尔排序算法,包括了java实现希尔排序算法的使用技巧和注意事项,需要的朋友参考一下 希尔排序算法的基本思想是:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在

  • 本文向大家介绍python编程实现希尔排序,包括了python编程实现希尔排序的使用技巧和注意事项,需要的朋友参考一下 观察一下”插入排序“:其实不难发现她有个缺点:   如果当数据是”5, 4, 3, 2, 1“的时候,此时我们将“无序块”中的记录插入到“有序块”时,估计俺们要崩盘,每次插入都要移动位置,此时插入排序的效率可想而知。     shell根据这个弱点进行了算法改进,融入了一种叫做“

  • 主要内容:序列的划分方法,希尔排序算法的具体实现前面给大家介绍了 插入排序算法,通过将待排序序列中的元素逐个插入到有序的子序列中,最终使整个序列变得有序。下图所示的动画演示了插入排序的整个过程: 图 1 插入排序算法 观察动画不难发现,插入排序算法是通过比较元素大小和交换元素存储位置实现排序的,比较大小和移动元素的次数越多,算法的效率就越差。 希尔排序算法又叫 缩小增量排序算法,是一种更高效的插入排序算法。和普通的插入排序算法相比,希尔排序算法

  • 本文向大家介绍C++ 算法之希尔排序详解及实例,包括了C++ 算法之希尔排序详解及实例的使用技巧和注意事项,需要的朋友参考一下 C++ 算法之希尔排序算法详解及实例 希尔排序算法 定义:           希尔排序是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 算法思想:           希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序,随

  • 希尔排序 这个算法在插入排序的基础上作出了很大的改善。希尔排序的核心理念与插入排序不同,它会首先比较距离较远的元素,而非相邻的元素。和简单的比较相邻元素相比,使用这种方案可以使离正确位置很远的元素更快回到适合的位置。当开始用这个算法遍历数据集时,所有元素之间的距离会不断减小,直到处理到数据集的末尾,这时算法比较的就是相邻元素了。 主要是通过遍历数组中相隔相同位置的元素去比较大小进行排列 funct

  • 本文向大家介绍Java 插入排序之希尔排序的实例,包括了Java 插入排序之希尔排序的实例的使用技巧和注意事项,需要的朋友参考一下 Java 插入排序之希尔排序的实例 Java代码   运行后的结果为: Java代码   当分割的间隔为1时,变成了直接插入排序。 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 本文向大家介绍Python实现的堆排序算法示例,包括了Python实现的堆排序算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现的堆排序算法。分享给大家供大家参考,具体如下: 堆排序的思想: 堆是一种数据结构,可以将堆看作一棵完全二叉树,这棵二叉树满足,任何一个非叶节点的值都不大于(或不小于)其左右孩子节点的值。 将一个无序序列调整为一个堆,就可以找出这个序列的最大值

  • 本文向大家介绍Python实现的桶排序算法示例,包括了Python实现的桶排序算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现的桶排序算法。分享给大家供大家参考,具体如下: 桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出现的次数。最后按顺序输出数据集里面的元素。 但是桶排序非常浪费空间, 比如需要排序的范围在0~2000之间,