七个基础排序算法(均为内部排序):
直接插入排序
希尔排序
冒泡排序
简单选择排序
快速排序
堆排序
二路归并排序排序算法稳定性:经过排序后,具有相同关键码的元素之间的相对次序保持不变,则称该排序方法是稳定的;否则不稳定。直接插入排序:void InsertSort(int a[],int n){ // index start at 1, a[0] is temp one
i...
分类:
编程语言 时间:
2016-03-28 00:15:58
阅读次数:
189
原文链接:http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试...
分类:
编程语言 时间:
2015-09-20 10:29:04
阅读次数:
147
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定...
分类:
编程语言 时间:
2015-08-05 10:26:55
阅读次数:
114
一、前言 上一篇,只是简单的记录了常用算法的主要思想以及代码实现( 常用算法记录); 这次简单的记录一下算法的稳定性以及复杂度二、稳定性1. 稳定性的定义 如果两个相等的数据的先后位置,排序前后保持不变的话,那就是稳定的,反之,就是不稳定; 例如:A[i] == A[j] , A[i]的位置...
分类:
编程语言 时间:
2015-05-26 18:11:11
阅读次数:
119
排序算法可以分为稳定排序和不稳定排序。在简单形式化一下,如果A[i] = A[j],A[i]原来在位置前,排序后A[i]还是要在A[j]位置前,这才能叫稳定排序。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果排序算法稳定,对基于比较...
分类:
编程语言 时间:
2015-05-06 10:59:54
阅读次数:
103
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者...
分类:
编程语言 时间:
2015-04-22 21:58:04
阅读次数:
122
首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。
其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,...
分类:
编程语言 时间:
2015-04-18 08:50:47
阅读次数:
162
前面我们学习的几种排序算法都是基于比较的,对于任何输入数据他们都是适用的,其最坏的时间复杂度不会低于nlgn;
但对于一些比较特殊的输入数据,我们可以不采取比较的方法而是采用其它的方法对其进行排序,以达到线性的时间复杂度。下面就来介绍三种这样的算法:计数排序,基数排序,桶排序(因为这几种算法不常见,我只实现了计数排序,其它两种排序用伪代码表示)。一.计数排序
算法思想:给定n个位于0–k之...
分类:
编程语言 时间:
2015-03-13 18:46:59
阅读次数:
170
http://hi.baidu.com/shismbwb/item/404c94898cfd2855850fab24#
分类:
编程语言 时间:
2014-10-15 11:31:20
阅读次数:
177
为方便自己看懂,所以用的语言比较通俗。 排序算法稳定性解释:如果a=b,a原来在b前面,排序算法后a也在b前面,就是稳定排序。 归并排序:稳定排序,时间复杂度为O(NlogN),将若干有序的数组合并成一个有序的数组...
分类:
其他好文 时间:
2014-09-25 17:30:07
阅读次数:
267