《算法》学习笔记2.1 初级排序算法

2.1.1 选择排序

1.思想
不断地选择剩余元素之中的最小者

2.1.2 插入排序

1.思想
插入已经有序的数组中的适当位置,其余元素在插入之前都向右移一位

2.最优适用情况

  • 部分有序的数组;
  • 小规模数组

2.1.3 选择、插入排序比较

测试数组比较/次数交换/次数
选择排序长度为NN2/2N
插入排序长度为N且主键不重复最坏:N2/2 最好:N2/2最坏:N-1 最好:0

比较两种排序算法:sortCompare()

2.1.4 希尔排序

1.思想
使数组中任意间隔为h的元素有序的

2.最优适用情况

  • 中等大小的数组;
  • 需要解决一个排序问题而又没有系统排序函数可用,可先用希尔,再考虑是否值得用其他替代

2.1.5 其他

数据类型

实现Comparable()接口

几种典型的部分有序数组

  • 数组中的每个元素距离他的最终位置都不远
  • 一个有序的大数组接一个小数组
  • 数组中只有几个元素的位置不正确

插入排序中的哨兵

插入排序的实现中先找出最小的元素将其置于数组的最左边,这样就能去掉内循环的判断条件j>o,这是一种常见的规避边界测试的方法,能够省略判断条件的元素通常被称为哨兵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值