- 博客(6)
- 资源 (6)
- 收藏
- 关注
原创 排序系列【比较排序系列之】冒泡排序
冒泡排序属于交换排序的一种典型的交换排序。交换排序的基本思想是:两两比较待排序的关键码,发现记录逆置则进行交换,知道没有逆置对位置。对于冒泡排序而言,则就是单纯的两两进行比较,知道不能再继续冒泡为止。 我们通过【45,34,78,12,34’,32,29,64】数组为例,进行讲解。 i值 过程 i=0 j=7 A【7】和A【6】;64>29,不逆置;j=6 A...
2018-07-27 17:42:06 289 1
原创 排序系列【比较排序系列之】堆排序
堆排序,顾名思义是通过直接选择排序衍生而来的。直接选择排序是直接从剩余记录中线性的查找最大记录的方法,并没有巧妙的利用前一轮查找所得到的信息,而堆排序,利用堆数据结构来保存剩余记录相对大小的信息,因而是更有效的选择排序。 堆分为最大堆和最小堆,本篇我们通过最大堆来实现我们的功能。 最大堆需要满足的条件: 堆中每个父节点中的数据项都要大于或等于其子节点中的数据项。 堆排序主要有两个步骤:...
2018-07-27 16:34:17 473
原创 排序系列【比较排序系列之】直接选择排序
选择排序其算法思想是:逐个找出第i小的记录,并将其放到数组的第i个位置。选择排序的关键在于如何从剩余的未排序记录中找出最小或者最大的那个值,本篇我们则针对线性查找方法-直接选择排序进行一定的了解。 比如如下数组【45,34,78,12,34’,32,29,64】比较状况如下图: 当i=0时,j=i+1;smallest默认为A【i】;for(j=i+1;jpublic static v...
2018-07-26 18:18:39 243
原创 排序系列【比较排序系列之】直接插入排序 VS shell排序
前两篇分别对直接插入排序和希尔排序分别进行了了解,本篇则分别利用随机值赋值的方式对两个排序进行比较,代码先赋值如下: 直接插入排序代码:public static void main(String[] args) { Test2 test2 = new Test2(); int[] array=new int[10]; //随机数赋值,只考虑随...
2018-07-24 13:59:38 247
原创 排序系列【比较排序系列之】shell排序
上篇我们对直接插入排序有了一定的了解,并且明确知道插入排序最佳排序算法则是O(n),且适合短序列的排序情况,本篇我们讲述的shell排序则有效的利用了插入排序的这两个性质。 shell排序的眼光:不同于直接插入排序的相邻记录之间的比较,而是着眼于那些不相邻的记录进行比较和移动,待比较到最后,当间距减少为1时,也就是整个序列接近于一个正序的状态,然后再对整个序列进行插入排序。 本篇我们采用数组长...
2018-07-23 18:08:37 753
原创 排序系列【比较排序系列之】直接插入排序
最近在和小伙伴们一起研究排序,排序分好多总,后期会做整体总结,本篇则主要对插入排序进行一个整理。插入排序(插入分选)的算法思想十分简单,就是对待排序的记录逐个进行处理,每个新纪录与同组那些已排好序的记录进行比较,然后插入到适当的位置用三个字总结就是- “ 多对一 ”关系的插入排序分好几种,比如二分插入排序,交换插入排序,直接插入排序,本篇我们重点总结最熟悉的“直接插入排序”。比如有一个数组【...
2018-07-16 17:49:22 259
College.csv
2020-07-01
mindManager2012模板文件
2014-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人