![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
huangdingchuan
这个作者很懒,什么都没留下…
展开
-
算法的稳定定性及各算法稳定性分析
[quote]【1】选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法 冒泡排序、插入排序、归并排序和基数排序都是稳定的排序算法。 【2】研究排序算法的稳定性有何意义? 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。 再简单具体一点,如果A i == A j,Ai 原来在 A...2015-11-10 23:25:07 · 1453 阅读 · 0 评论 -
算法时间复杂度计算方法
[quote]求解算法的时间复杂度的具体步骤是: ⑴ 找出算法中的基本语句; 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 ⑵ 计算基本语句的执行次数的数量级; 只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要...2015-11-10 23:55:29 · 178 阅读 · 0 评论 -
直接插入排序算法分析与实现
排序基本思想: 从第二个元素开始,用这个元素依次与其前面的每一个元素比较,如大于该元素则将改元素向后移动一个位置直到找到比这个元素小的位置(或者到第一个结束)将这个元素放到改元素的后面即完成排序算法图示[img]http://dl2.iteye.com/upload/attachment/0112/9888/113facf6-6eed-3e09-8405-1f5dea3f...原创 2015-11-11 00:16:15 · 232 阅读 · 0 评论 -
冒泡排序算法实现与分析
基本思想: 从第0个数据开始,将其与后面的每一个数据比较,如果比其大则调整两个的位置直到最后一个。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。图示: [img]http://dl2.iteye.com/upload/attachment/0113/0205/7e345e52-bceb-36a4-8b98-10043a814d40.png[/...2015-11-11 23:46:52 · 136 阅读 · 0 评论 -
二分插入排序的分析与实现
1、基本思想: 二分插入法与直接排序类似,只是在确定插入位置的方法是用二分法,即从第0个数据开始依次折半与待插入的数据进行比较直到找到合适的位置。2、图示: [img]http://dl2.iteye.com/upload/attachment/0113/1140/95942789-2032-3249-b6a7-b8fdde77dd1f.png[/img]3、Jav...原创 2015-11-16 22:15:03 · 131 阅读 · 0 评论 -
希尔排序算简单实现与分析
1、基本思想 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2...2015-11-19 22:34:07 · 77 阅读 · 0 评论 -
简单选择排序Java实现与分析
1、基本思想 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。2、图示[img]http://dl2.iteye.com/upload/attachment/0113/1973/c8ed0c6a-b72b-3b6e-ba74-439a944a9741.png[/img]...2015-11-19 22:57:25 · 96 阅读 · 0 评论