# -*- coding:gb2312 -*-
'''
Created on 2010-7-29
@author: http://g-content.appspot.com
'''
#希尔排序
#定义一个数组
#lst = [81, 94, 11, 96, 12, 24, 17, 95, 28, 58, 41, 75, 15]
lst = [81, 94, 11, 96, 12, 35, 17, 95, 28, 58, 41, 75, 15]
ord = [5, 3, 1]
for i in ord:
#按当前序列值进行循环分组排序
for o in range(len(lst)):
#得到分组序号
grp = range(o, len(lst), i);
if len(grp) <= 1:
break;
#对当前分组进行插入排序
for c in range(1, len(grp)):
#获得当前分组最后一个值
last = lst[grp[c]]
#插入排序第n趟序列
n = range(1, c + 1)
#从右到左比较
n.reverse()
for f in n:
'''
由于n是针对分组的序列,所以实际值是lst[grp[f]]
'''
if lst[grp[f]] < lst[grp[f - 1]]:
lst[grp[f]] = lst[grp[f-1]]
lst[grp[f-1]] = last
print '第',i,'排序是',lst
分享到:
相关推荐
《数据结构与算法 Python语言描述》是裘宗燕编著的一本专著,它深入浅出地介绍了数据结构和算法的基础知识,特别是如何利用Python语言进行实现。这本书以高清且带有目录的形式,使得读者能够方便地查找和学习相关...
python 智能算法——粒子群算法简单例子
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
基于python-2.7实现的K-Shell节点排序算法,算法结果输出每个节点K值。
算法设计与分析课程——冒泡排序结果
《算法与数据结构课程设计——排序》 在计算机科学中,排序是处理数据的重要操作,尤其是在数据分析、数据库管理和算法效率优化等领域。本课程设计主要涵盖了五种常见的排序算法:冒泡排序、直接插入排序、简单选择...
希尔排序(Shell Sort)是一种基于插入排序的快速排序方法,由Donald Shell于1959年提出。它的主要思想是将待排序的数据按照一定的间隔进行分组,然后对每组进行插入排序,随着间隔逐渐缩小,最后进行一次全排列,...
数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法...
在Python环境中,这种算法通常与Jupyter Notebook结合使用,方便进行交互式编程和结果可视化。以下是对NSGA-II算法及其Python实现的详细说明。 **非支配排序遗传算法(NSGA-II)** NSGA-II是基于遗传算法(Genetic...
《机器人学、机器视觉与控制——MATLAB算法基础》是一本深入探讨机器人技术、机器视觉以及相关控制策略的书籍,其核心是利用MATLAB作为工具进行算法开发与实践。MATLAB,全称“Matrix Laboratory”,是一款强大的...
python 2048游戏核心算法(csdn)————程序
使用遗传算法实现 TSP 和 VRP 算法 TSP 和 VRP 的遗传算法 解决旅行商问题和车辆路线问题(TSP,VRP)的...修改上一步中开发的遗传算法的标准版本,仅选择以下选项之一: 具有不同种群大小的遗传算法 该想法是将
"Python 计算思维训练——SAR 图像处理" 在 Python 计算思维训练中,SAR 图像处理是一个重要的应用领域。SAR 图像处理指的是使用Python 工具处理合成孔径雷达(Synthetic Aperture Radar)图像,以提取有价值的信息...
(10)数据结构之红黑树(三)——删除操作 (11)排序算法(一)——冒泡排序及改进 (12)排序算法(二)——选择排序及改进 (13)排序算法(三)——插入排序及改进 (14)排序算法(四)——归并排序与递归...
python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(下)对应源码
在IT领域,排序算法是计算机科学的基础之一,尤其在编程语言如Python中,理解并能够实现这些算法对于提升代码效率和解决复杂问题至关重要。这里我们将深入探讨标题提及的七种排序算法的Python实现:冒泡排序、堆排序...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治策略,通常比其他O(n^2)时间复杂度的排序算法如冒泡排序、选择排序等更快。舍伍德在这个主题上进行的研究可能包括对快速排序...
在当前的计算机科学与技术及相关专业教学中,“算法分析”课程占据着核心的地位。它不仅仅是培养学生理论知识的基础,更是锻炼学生计算思维能力和问题解决能力的关键。然而,在教学实践中,教师和学生们普遍面临两大...
算法笔试题:(Python实现)—— 算法面试题汇总算法笔试题:(Python实现)—— 算法面试题汇总开始之前Python实现只出现一次的数字多数元素搜索二维矩阵 II合并两个有序数组鸡蛋掉落字符串Python实现验证回文串...
数据结构课程设计五——排序算法综合分析 该资源是一个数据结构课程设计的五个部分,主要讲解排序算法的综合分析。该资源涵盖了多种排序算法,包括直接插入排序、希尔排序、快速排序、冒泡排序、堆排序和归并法排序...