插入排序
来源:互联网 发布:python 3.5.1 编辑:程序博客网 时间:2024/05/22 07:51
参考教材 《数据结构与算法》–裘宗燕
《算法》第四版
附关键码解释:
假设需要排序的是某种数据记录的序列,每个记录里有一个或多个支持排序的关键码。
在面向对象编程中,定义的结构体、数据结构实为一种抽象概念。例如想将1000个学生进行排序,那么如何进行排序呢?故可根据人为定义的关键码进行排序。例如学生的身高可作为一关键码。
class record: def __init__(self, key, datum): self.key = key self.datum = datum
插入排序,顾名思义其操作方式是插入,不断把一个个元素插入一个序列中,最终得到排序序列。
为了少用辅助空间,最合适的方法为将正在构造的排序序列嵌入到原来的表中。
Python描述:
def insert_sort(lst): for i in range(1, len(lst)): x= list[i] j = i while j > 0 and lst[j-1].key > x.key: lst[j] = lst[j-1] #反序逐个后移,确定插入位置 j -= 1 lst[j] = x
在计算机的实现中,为了要给插入的元素腾出空间,需要将其余所有元素在插入之前都右移一位。这种算法叫插入排序算法。
当前索引左边的所有元素都是有序的。
public class insertion{ public static void sort(Comparable[] a) { #将a[]按升序排序 int N = a.length; for(int i = 1; i < N; i++) { for(j = i; j > 0 && less(a[j], a[j-1]);j--) exch(a, j, j-1); } }}
阅读全文
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- Java实现——判断一个数是否是质数
- sigar获取机器的使用状态
- hdu 1263 水果
- HTML-错误页面模版01
- 深入理解Hadoop集群和网络
- 插入排序
- Vim的基本使用(一)
- 梯度下降最优化算法综述
- Spring核心机制(依赖注入IOC)
- hibernate概述
- 15/18位身份证号码验证的正则表达式总结(详细版)
- Socket通信原理步骤
- 1005. 继续(3n+1)猜想 (25)
- Vim的基本使用(二)