数据结构排序算法-直接插入排序

排序

定义

将一组任意顺序的数据,重新排列成关键字有序的序列。

分类

1、内部排序

排序过程在内存中完成。

(1)插入排序

(2)选择排序

(3)交换排序

(4)归并排序

(5)分配排序

2、外部排序

数据量比较大的时候需要借助外部资源来实现排序。

算法的 稳定性:

如果序列中有两个关键字相等,那么在排序之后这两个关键字的相对位置(谁前谁后)不变的话,就说这

个算法是稳定的。

直接插入排序

在这里插入图片描述
R[0]是监视哨

如果前i-1个关键字处于有序状态,那么将第r[i]插入到前面的顺序表中的适当位置,逐个将后面未排序的关

键字插入到前面的有序表当中。

基本思想

基于有序有序插入。

用监视哨来存放要插入的元素值。

在这里插入图片描述
对于一个要进行排序的序列,默认初始有序序列为1个数据。也就是这里的(49)。

当i=1时,只有一个数据,不需要比较。

每一趟排序的序列将增加一个元素。如果序列中有n个元素,那么最多进行n-1趟排序即可。

将要插入的数据,也就是监视哨中的数据和已经有序的序列的最后一个数据比较,倒着比较。

如果有序序列的最后一个数据小于要插入的元素的值,那么直接将要插入的数据存放在当前的位置即可。

否则的话将最后一个数据向后移一位。接着比较倒数第二个。
在这里插入图片描述

Java实现代码

package com.xingyun.paixu;

import java.util.Sc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值