算法与数据结构
taojin12
这个作者很懒,什么都没留下…
展开
-
【数据结构与算法】------冒泡排序
学习开发一年的时间里,很少去了解排序算法,冒泡排序也是最开始学习的样子,靠死记硬背,没有引入自己的理解。 对于什么时间复杂度和空间复杂度和稳定性也不清楚其原委,或许在代码方面少了几许的天分:冒泡排序:冒泡排序每一轮的比较都是前面的数和后面的数进行比较,并交换位置,每一轮结束,最大值就位于序列末尾。下面代码是最初的冒泡排序代码:public class bubbleSort...原创 2018-09-29 11:24:08 · 138 阅读 · 0 评论 -
【数据结构与算法】 ---快速排序
快速排序流程:1.从数列中挑出一个基准值2.将所有比基准值小的摆放在基准前面,所有比基准值大的摆在后面(相同的数可以放到任一边);在这个分区退出之后,该基准就处于数列的中间位置。3.递归地把“基准值前面的子数列”和“基准值后面的子数列”进行排序。 下面以数列a={30,40,60,10,20,50}为例,演示它的快速排序过程(如下图)。上图只是给出了第1趟快速排序的流程...原创 2018-09-29 16:55:21 · 1043 阅读 · 0 评论 -
【算法与数据结构】---------选择排序
选择排序是对冒泡排序的优化,其比对的次数并没有减少,仍保持为O(n^2).减少了其冒泡排序的交换次数,从O(n^2)减少到O(n). 选择排序在每一轮比较完之后,才进行位置交换。算法分析:选择排序最好和最坏的情况一样运行了O(n^2).时间,但是选择排序无疑更快,因为它进行了更少的交换。当N值较小时,特别是交换时间比比较时间大的多时,选择排序是相当快的,平均复杂度是O(n^2...原创 2018-11-18 17:13:50 · 106 阅读 · 0 评论 -
【数据结构与算法】插入排序
插入排序是算法中的基础入门和冒泡排序、选择排序都是必要掌握的。他们都是对比排序,需要通过比较大小交换位置,进行排序。插入排序的实现思路:1、 从第一个元素开始,这个元素可以认为已经被排序。2、取出下一个元素,在已排序的序列中从后往前扫描。3、如果该元素小于小于前一个元素,将两者进行交换,再与前一个元素进行比较。4、重复第三步,直到找到已排序的元素小于或等于新元素的位置。5...原创 2018-11-16 09:06:40 · 109 阅读 · 0 评论 -
【算法与数据结构】--希尔排序
什么是希尔排序?希尔排序,也是插入排序的一种,又称“缩小增量排序”。插入排序是非稳定排序,希尔排序也是非稳定排序。希尔排序的实现:通过将数据根据增量序列进行分组,分组的后的数据根据插入排序进行排序,当所有分组都排好序之后,再进行最后一次插入排序。这样显著减少了数据的交换次数,提高了效率。这种思想需要一个增量序列,我们成为n - 增量。n表示的是进行排序时数据项之间的间隔。习惯上用 h 表示...原创 2018-11-19 09:59:54 · 197 阅读 · 0 评论