python-实现希尔排序
2018-02-01 19:29
225 查看
一、希尔排序思路:
图解:
---间隔---
---间隔---
代码实现:
希尔排序是一种分组插入排序算法。 首先取一个整数d1=n/2,将元素分为d1个组,每组相邻量元素之间距离为d1, 在各组内进行直接插入排序;取第二个整数d2=d1/2,重复上述分组排序过程, 直到di=1,即所有元素在同一组内进行直接插入排序。 希尔排序每趟并不使某些元素有序,而是使整体数据越来越接近有序;最后一趟排序使得所有数据有序。
图解:
---间隔---
---间隔---
代码实现:
li=[5,7,4,6,3,1,2,9,8] def shell_sort(li): gap = len(li) // 2 while gap > 0: for i in range(gap, len(li)): tmp = li[i] j = i - gap while j >= 0 and tmp < li[j]: li[j + gap] = li[j] j -= gap li[j + gap] = tmp gap //= 2 shell_sort(li) print(li)
相关文章推荐
- 八大排序算法的python实现(二)希尔排序
- 排序算法的C++ && Python实现---希尔排序(缩小增量排序)
- 用python实现希尔排序(shell_sort)
- 希尔排序Python实现
- Python实现希尔排序
- python实现希尔排序(已编程实现)
- 希尔排序 Python实现
- 希尔排序的Python实现
- 排序算法总结(冒泡排序、直接插入排序、希尔排序)(python实现)
- 八大排序算法 Java、Python、C++实现 -- 希尔排序
- python实现希尔排序
- 希尔排序--Python实现
- python实现希尔排序
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- python实现希尔排序
- 文本数据转换md5(Python实现)
- 数据结构与算法 python实现
- Python实现ping指定IP的示例
- linux下python抓屏实现方法
- python简单实现linux命令strings