摘要: 4. 归并排序 4.1 递归实现 函数的递归本质上是一个压栈出栈的过程,更广意义上来说,函数调用都是压栈和出栈的过程,排序这一系列完了 ,我打算写一下函数调用和栈的关系的一章,看看能不能把这个过程理解透彻一些。 具体来说归并排序的递归实现。其主要思想是把待排序序列分为大小基本相同的两个部分,分别对前 阅读全文
posted @ 2018-02-04 20:25 Yutoti_三石 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 3.2 快速排序 快速排序综合性能优越,其主要思想在于找一个pivotvalue,通过不断的比较、交换,将序列变成pivotvalue前的值都比它小,在其后的值都比它大;然后,再对pivotvalue前面的序列和后面的序列分别使用同样的方法得到具有该性质的序列.....不断递归调用至最底层即排好序。 阅读全文
posted @ 2018-02-03 20:08 Yutoti_三石 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 3. 交换排序 冒泡排序可以说是我接触的第一个排序算法了,现在知道,它属于交换排序中的一类。交换排序有三个:简单交换排序、经典冒泡排序和改进的冒泡排序 3.1 简单交换排序 简单交换排序即是i从1开始,让每一个元素与后面的元素比较,如果后面的小则将其交换到第i位来,i从1到n循环。比较和交换的次数都 阅读全文
posted @ 2018-01-31 22:01 Yutoti_三石 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 2.2 堆排序 堆:1. 是完全二叉树;2. 树中所有结点都比左右孩子大(或小)。(但在实现过程发现,其实堆排序并没有用到树结构,还是用的顺序表,只是用完全二叉树来理解而已)。 堆排序是一种选择排序算法,其主要思路是:先将所有待排序元素构造成一个大顶堆(或小顶堆),接着将堆顶元素和最后一个元素(层序 阅读全文
posted @ 2018-01-27 17:10 Yutoti_三石 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 2. 选择排序 2.1 简单选择排序 简单选择排序的主要思想是,对第i个元素,将其与后面的n-i个元素作比较,用一个min变量存储这n-i+1个元素中的最小值的位置,比较完后将a[min]和a[i]交换(min != i)。简单选择排序进行了(n^2)/2次比较,n次交换,交换的次数少。 其主要过程 阅读全文
posted @ 2018-01-26 21:36 Yutoti_三石 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1.2 希尔排序 希尔排序属于插入排序的一种,是直接插入排序的优化,其主要思想是:由于在序列基本有序的情况下,直接插入排序的效率很高,那么,我们引入一个增量incre,把以incre为间隔的元素做一次直接插入排序,使其基本有序;随后,incre慢慢减小,继续做上述直接插入排序,最后incre变成1, 阅读全文
posted @ 2018-01-26 20:43 Yutoti_三石 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 前段时间Java学了,数据结构与算法看了,机器学习也了解了一点,还装上Ubuntu了解了Linux。接受的东西太多太杂,需要梳理一下。 首先是最重要的数据结构和算法,无论以后搞什么,只要是计算机方面的,都是在这基础上开展的,所以我前段时间着重花了很多时间在上面,接下来也还要继续,这点是要明确的。机器 阅读全文
posted @ 2018-01-25 21:03 Yutoti_三石 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 10月以来,实验室三院软件那个题比较紧,DLR算例花了不少时间(虽说只是跟着高老师打下手),另外毕设题目定下来了,重叠网格算多体分离,我最终还是没有做基础研究,也未必是件坏事。背景是老蒋的项目,真不想跟着他干啊,时不时就要跟你讲几句,一讲半个、一个小时就没了,还经常啥收获都没有。以后晚 阅读全文
posted @ 2017-11-07 22:19 Yutoti_三石 阅读(166) 评论(0) 推荐(1) 编辑
摘要: Java第一次小结 阅读全文
posted @ 2017-10-08 21:52 Yutoti_三石 阅读(596) 评论(0) 推荐(0) 编辑