算法原理:假设一个人沿列表从头到尾走,如果发现有相邻元素顺序不对的就交换一下,然后后退一步,否则继续往前走,当走到列表尾部时,所有元素就排好序了。

import random

def gnomeSort(lst):

i = 0

length = len(lst)

while i < length:

#回头看,如果当前元素比前面的大或者相等,就继续往前走

if i==0 or lst[i-1]<=lst[i]:

i += 1

else:

#如果当前元素比前面的小,就交换位置,然后后退一步

lst[i-1], lst[i] = lst[i], lst[i-1]

i -= 1

lst = list(range(20))

random.shuffle(lst)

print(lst)

gnomeSort(lst)

print(lst)

侏儒排序算法原理与Python实现相关推荐

  1. Python:实现gnome sortt侏儒排序算法(附完整源码)

    Python:实现gnome sortt侏儒排序算法 def gnome_sort(lst: list) -> list:if len(lst) <= 1:return lsti = 1w ...

  2. 手把手教你EMD算法原理与Python实现(更新)

    Rose今天主要介绍一下EMD算法原理与Python实现.关于EMD算法之前介绍过<EMD算法之Hilbert-Huang Transform原理详解和案例分析>, SSVEP信号中含有自 ...

  3. python kmeans聚类 对二维坐标点聚类_Kmeans均值聚类算法原理以及Python如何实现

    第一步.随机生成质心 由于这是一个无监督学习的算法,因此我们首先在一个二维的坐标轴下随机给定一堆点,并随即给定两个质心,我们这个算法的目的就是将这一堆点根据它们自身的坐标特征分为两类,因此选取了两个质 ...

  4. 【代码刷题】排序算法总结(python实现)

    排序算法总结(Python实现) 算法介绍 算法分类 相关概念 1. 冒泡排序(Bubble Sort) 1.1 思想 1.2 python实现 1.3 复杂度 1.4 稳定性 2. 快速排序(Qui ...

  5. java排序算法原理_排序算法原理与实现(java)

    排序算法原理与实现(java) Java程序员必知的8大排序 [来源:本站 | 日期:2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1, 直接插入排序 (1 ...

  6. 经典排序算法总结与Python实现(下)

    在之前的博客经典排序算法总结与Python实现(上)中已经讨论过插入.冒泡.选择.快排.谢尔排序.这篇博客主要完成剩下的几个排序算法. 排序算法 时间复杂度(最好) 时间复杂度(最差) 时间复杂度(平 ...

  7. 经典排序算法总结与Python实现(上)

    本篇博客中的有序都是指的升序,降序情况稍微改改就出来了. 排序算法 时间复杂度(最好) 时间复杂度(最差) 时间复杂度(平均) 空间复杂度 稳定性 插入排序 O(n)O(n)O(n) O(n2)O(n ...

  8. C#:实现gnome sort 侏儒排序算法(附完整源码)

    C#:实现gnome sort 侏儒排序算法 下面是 C# 语言实现的侏儒排序算法的源代码: public static void GnomeSort(int[] arr) {int i = 1;in ...

  9. JAVA:实现 gnome sort侏儒排序算法(附完整源码)

    JAVA:实现 gnome sort侏儒排序算法 package com.thealgorithms.sorts;import static com.thealgorithms.sorts.SortU ...

最新文章

  1. 小米面试题:单词搜索
  2. 邮件系列(二)-发送邮件
  3. STM8启动分析及IAP
  4. 小程序反编译 g is not defined_培生幼儿启蒙英语 Level B | 小牧羊女在哪?
  5. Spring MVC_Hello World
  6. [bzoj1191][HNOI2006]超级英雄Hero
  7. Derby与mysql的关系_Derby数据库简单介绍和使用方法 | 学步园
  8. 思科模拟器 简单网络连接操作
  9. 5种成交话术,帮你多拿订单,挠到客户痒处,才有成交希望
  10. 如何从JavaScript中删除数组中的元素?
  11. Java变量命名规范
  12. onlyoffice 回调传参数_onlyoffice服务在线编辑文档保存解析
  13. MDCC2016 总结
  14. 网易汪源:网易产品体验好,离不开AI驱动
  15. 417. 太平洋大西洋水流问题
  16. 欧姆龙CP1H+CIF11与海利普变频器modbus通讯
  17. 结合语言知识和深度学习的中文文本情感分析方法
  18. endnote 选择一个导入过滤器_EndNote 的 Filter 简介,操作和基本结构 | 科研动力
  19. python爬虫实践-02-大众点评评论爬取-破解CSS字体加密
  20. 2020淘宝618开火车任务(包括火车厢任务)和芭芭农场种树任务

热门文章

  1. html版本操作手册,全新HTML5用户手册(版本2017)–互联网股票买卖操作.PDF
  2. 命运歌姬服务器停服维护中,命运歌姬3月4日更新什么?命运歌姬3月4日更新维护公告[多图]...
  3. java怎么安装_Java怎么安装?Java运行环境安装教程
  4. linux下抓包工具 wireshark,网络抓包工具Wireshark的简单使用
  5. php mysql切换版本5.7_phpstudy里升级mysql版本到5.7
  6. 学习笔记(05):MySQL数据库运维与管理-03-二进制日志配置管理演示
  7. python 创建二维list,Python创建二维数组(关于list的一个小坑)
  8. GitHub 添加开源协议
  9. android 拍照 图片剪切
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的停车预约管理系统