博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构&算法实践—【排序|插入排序】插入排序
阅读量:5217 次
发布时间:2019-06-14

本文共 1035 字,大约阅读时间需要 3 分钟。

转载请注明出处:

排序>>选择排序>>选择排序

List:

0.概念+示例分析

1.插入排序实现

0 start

基本概念:

维基百科

插入排序,简单来说就是每次拿一个新的数,将其插入到有序序列中.

示例:

[8, 4, 3, 1, 6, 9, 2, 7]
index- 1  #从第二个数开始
move 1 , change-> [
4, 8
, 3, 1, 6, 9, 2, 7]  #移动一次,插入
index- 2
move 2 , change-> [
3
, 4, 8
, 1, 6, 9, 2, 7] #移动两次,插入
index- 3
move 3 , change-> [
1
, 3, 4, 8
, 6, 9, 2, 7]
index- 4
move 1 , change-> [
1, 3, 4,
6
, 8
, 9, 2, 7]
index- 5

move 0 ,  nochange -> [1, 3, 4, 6, 8, 9, 2, 7]

index- 6

move 5 , change-> [
1,2, 3, 4, 6, 8, 9
, 7]
index- 7
move 2 , change-> [
1, 2, 3, 4, 6,
7
, 8, 9
]
[1, 2, 3, 4, 6, 7, 8, 9]

1 start

插入排序python实现

#!/usr/bin/python# -*- coding:utf-8 -*-#插入排序#@author: wklken@yeah.netdef insert_sort(l):    print l    for i in range(1,len(l)): #从第二个元素开始        value = l[i]        while i >= 1 and l[i-1] > value:            l[i] = l[i-1]            i -= 1        l[i] = value    return l    l = [8, 4, 3, 1, 6, 9, 2, 7]print insert_sort(l)

改进及优化:

1.加入监控,已排序完成直接退出

2.使用二分插入排序,即,处理某个节点往前插入的时候,使用二分查找插入

转载于:https://www.cnblogs.com/iplus/archive/2012/06/02/4464635.html

你可能感兴趣的文章
i++
查看>>
文件夹(目录)操作
查看>>
【原创】MYSQL++源码剖析——前言与目录
查看>>
将NavigationBar设置透明
查看>>
Single Number
查看>>
题目2 成绩排序
查看>>
INTERSECT(交集)集合运算
查看>>
上下文字\图片滚动 无JS
查看>>
Linux的动态库与静态库
查看>>
HDU - 1584 IDA*
查看>>
jquery indexOf方法
查看>>
HDU 6579 Operation
查看>>
使用Junit等工具进行单元测试
查看>>
今日头条春招第一题
查看>>
清北学堂Day7
查看>>
找水王
查看>>
PuTTY的下载安装和基本使用方法教程
查看>>
深入理解Spring Redis的使用 (八)、Spring Redis实现 注解 自动缓存
查看>>
BZOJ2002 [Hnoi2010]Bounce 弹飞绵羊
查看>>
LaTeX自学ing
查看>>