博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入排序
阅读量:5256 次
发布时间:2019-06-14

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

插入排序

将目标元素插入到前方有序序列中合适的位置,插入一次,有序序列长度加一,就是你打牌整理牌序的过程。

伪代码

INSERTION_SORT(A)    for j = 2 to A.length        key = A[j]        i = j - 1        while i > 0 and A[i] > key            A[i+1] = A[i]            i = i - 1        A[i+1] = key

python

A = [5,2,4,6,1,3]print("排序前", A)j = 1while j < len(A):    key = A[j]    i = j - 1    while i >= 0 and A[i] > key:        A[i+1] = A[i]        i = i - 1    A[i+1] = key    j = j + 1print("排序后", A)

c++

#include 
using namespace std;int main(){ int A[] = {5,2,4,6,1,3}; cout << "排序前 "; for(int i = 0; i < 6; i++) { cout << A[i] << " "; } cout << endl; for(int j = 1; j < 6; j++) { int key = A[j]; int i = j - 1; while(i >= 0 && A[i] > key) { A[i+1] = A[i]; i = i - 1; } A[i+1] = key; } cout << "排序后 "; for(int i = 0; i < 6; i++) { cout << A[i] << " "; } return 0;}

算法分析

运行时间

  • 依赖于输入的顺序,最好顺序,最差逆序
  • 依赖于输入的规模
    • 将运行时间看作以输入规模为参数的函数
  • 时间上界,对用户的承诺
  • 时间复杂度\(\theta(n^2)\)

转载于:https://www.cnblogs.com/vito_wang/p/10801919.html

你可能感兴趣的文章
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
idea搭建tocmat
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
Binary Tree Traversals HDU - 1710 
查看>>
PHP程序员的技术成长规划(送给迷茫的你)
查看>>
spring配置详解-连接池配置(转载)
查看>>
堆排序算法原理
查看>>
java 跨数据库导入大数据
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
crypto加密
查看>>
Apache Jackrabbit 2.6.0 发布
查看>>
echarts饼图显示百分比
查看>>
第十二次作业
查看>>
喜欢的话
查看>>
JMS消息
查看>>
16位整数,32位整数,64位整数
查看>>