插入排序——Python实现
插入排序Python实现
# -*- coding: utf-8 -*-
# @Time : 2019/10/28 20:47
# @Author : yuzhou_1shu
# @Email : yuzhou_1shu@163.com
# @File : insertion_sort.py
# @Software: PyCharm
def insertion_sort(collection):
"""Python实现插入排序算法
将插入排序模拟成抓扑克牌:
1、当抓到第一个牌肯定是有序的
2、然后抓到第二张牌,如果比第一张大,放在右边;如果小,放在第一张左边;相等,左右都可以
:param collection: 待排序序列
:return: 升序排好的对应序列
"""
length = len(collection)
# 第一张牌肯定有序,所以循环变量从1开始(也就是第二张牌开始插入),i代表摸到的牌
for i in range(1, length):
insertion_index = i
while(insertion_index > 0 and collection[insertion_index - 1] > collection[insertion_index]):
collection[insertion_index], collection[insertion_index-1] = (collection[insertion_index-1], collection[insertion_index])
insertion_index -= 1
return collection
if __name__ == "__main__":
list1 = [5, 5, 1, 4, 1, 2, 3]
print("排序前: ", list1)
print("排序后: ", insertion_sort(list1))
插入排序——Python实现的更多相关文章
- 插入排序-Python与PHP实现版
插入排序Python实现 import random a=[random.randint(1,999) for x in range(0,36)] # 直接插入排序算法 def insertionSo ...
- 插入排序——Python实现
一.排序思想 排序思想参见:https://www.cnblogs.com/luomeng/p/10583124.html 二.python实现 def InsertSort(arrs): " ...
- 插入排序-python实现
def insert_sort(arr): for j in range(1,len(arr)): #从list第二个元素开始 key=arr[j] ...
- 插入排序--python
import random def insert_sort(nums): # 排序趟数 for i in range(1, len(nums)): current = nums[i] pre_inde ...
- [算法导论]插入排序 @ Python
class insertionsort(): def insertion_sort(self,Array): for i in range(1, len(Array)): key = Array[i] ...
- 几种排序算法的学习,利用Python和C实现
之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...
- 常见排序算法-Python实现
常见排序算法-Python实现 python 排序 算法 1.二分法 python 32行 right = length- : ] ): test_list = [,,,,,, ...
- 十大经典排序算法(python实现)(原创)
个人最喜欢的排序方法是非比较类的计数排序,简单粗暴.专治花里胡哨!!! 使用场景: 1,空间复杂度 越低越好.n值较大: 堆排序 O(nlog2n) O(1) 2,无空间复杂度要求.n值较大: 桶排序 ...
- 十大经典算法 Python实现
十大经典排序算法(python实现)(原创) 使用场景: 1,空间复杂度 越低越好.n值较大: 堆排序 O(nlog2n) O(1) 2,无空间复杂度要求.n值较大: 桶排序 O(n+k) O(n+k ...
随机推荐
- bjd_ctf
1.抓包修改 提示修改id,postman修改headers里面的id 分析得到id是admin加admin的base64编码,payload为id: adminYWRtaW4= 请求后又提示请使 ...
- beego 框架用的页面样式模板
https://themequarry.com/category/free 页面样式
- 2019 GDUT Rating Contest I : Problem A. The Bucket List
题面: A. The Bucket List Input file: standard input Output file: standard output Time limit: 1 second Me ...
- Python模拟简易版淘宝客服机器人
对于用Python制作一个简易版的淘宝客服机器人,大概思路是:首先从数据库中用sql语句获取相关数据信息并将其封装成函数,然后定义机器问答的主体函数,对于问题的识别可以利用正则表达式来进行分析,结合现 ...
- C# 通过ServiceStack 操作Redis——List类型的使用及示例
Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// <summary> /// Redis list的实现为一个双向链表 ...
- mysql连接不上本地服务器或者localhost:3306报错
今天初学MySQL数据库就遇到问题: 主要是本地服务器登录问题 workbench里双击那个connection出现的 解决方法: 1:看一看防火墙,这是最常见的,这种主要是防火墙限制了访问,可能是安 ...
- ch1_6_6求解门禁系统问题
import java.util.HashMap; import java.util.Scanner; public class ch1_6_6求解门禁系统问题 { public static voi ...
- c/c++ switch case内括号
如果在case语句中有定义变量,则必须要加{},否则会报错.
- python3使用cv2对图像进行基本操作
技术背景 在机器视觉等领域,最基本的图像处理处理操作,可以通过opencv这个库来实现.opencv提供了python的接口,所需安装的库为opencv-python,但是在库的导入的时候一般用的是i ...
- Nacos概述及安装
Nacos是什么? 在Spring Cloud中我们使用eureka.consul等做为服务注册中心,使用Spring Cloud Config做为配置中心.而Spring Cloud中,也可以使用n ...