排序的稳定性:
在带排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。
稳定的排序有:
不稳定的排序有:...
分类:
编程语言 时间:
2015-08-04 23:05:47
阅读次数:
179
堆排序可以作为实时排序,是原址排序,不需要额外的空间,时间复杂度是O(nlgn),最好最坏平均情况都是这个,但是是不稳定排序,下面是C语言实现的代码。。
//为了简化编程,堆数组元素中的第一个位置不使用。
struct heap {
int size;
int *arr;
} h;
void max_heapify(struct heap * h, int p)
{
...
分类:
编程语言 时间:
2015-08-03 01:17:47
阅读次数:
170
快速排序也是典型的分治策略实现,与归并排序不同,快排的关键部分在于 分 也就是partition部分,快排平均时间复杂度是O(nlgn),最差时间是O(n^2),属于不稳定排序
下面是快排的C语言实现。
//p, r分别是数组中元素的下标
int partition(int A[], int p, int r)
{
int i, j;
i = p - 1;
f...
分类:
编程语言 时间:
2015-08-01 22:06:35
阅读次数:
226
1 在一个单链表中,若p所指的结点不是最后结点,在p所指结点之后插进s所指结点,则应执行操纵()
【解析】
s->next=p->next;p->next=s
2 在下列排序方法中,不稳定的方法有()
【解析】
不稳定排序的意思是在排序过程中,相等的两个数比较之后不会改变其原来的位置,即不需要交换。
常见的稳定排序有:
冒泡排序,插入排序,归并排序,基数排序。
常见的不稳定排序...
分类:
其他好文 时间:
2015-08-01 18:58:30
阅读次数:
147
多种排序算法的总结(不包括复杂度的详细推算)
稳定排序与不稳定排序
稳定排序:相同元素在排序中的相对位置不改变。
不稳定排序:相同元素在排序中的相对位置改变。
内部排序与外部排序:
内部排序:待排的记录与内容都放在计算机的随机存储器中进行的排序过程
外部排序:一般指待排序记录的数量很大,以致内存中一次不能完全容纳全部的记录,在排序过程中,需要对外存进行访问的排序过程。
排...
分类:
编程语言 时间:
2015-05-11 08:52:38
阅读次数:
156
排序算法可以分为稳定排序和不稳定排序。在简单形式化一下,如果A[i] = A[j],A[i]原来在位置前,排序后A[i]还是要在A[j]位置前,这才能叫稳定排序。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果排序算法稳定,对基于比较...
分类:
编程语言 时间:
2015-05-06 10:59:54
阅读次数:
103
思想:
1.首先生成1到n的数组A
2.生成1到n^3的n个数的随机数组P
例如A= P=
3.对p数组进行从小到大的排序(利用快速排序),生成数组P1=
4.根据3中P1的顺序,生成随机数数组A1=
代码:
#include
#include
#include
//快速排序,平均时间复杂度o(nlog2n),最好为o(log2n),最坏为o(n2).是不稳定排序( 交换排序)...
分类:
编程语言 时间:
2015-04-28 18:37:43
阅读次数:
183
考察优先队列,不过要注意优先队列的优先排序是不稳定排序,解决方法和自定义排序一样,再添加一个参数即可
#include
#include
using namespace std;
string cmd;
struct stu
{
string name;
int p,lv,num;
friend bool operator<(stu x,stu y)
{
if(x.lv==y.lv)...
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者...
分类:
编程语言 时间:
2015-04-22 21:58:04
阅读次数:
122
排序算法和查找算法差不多,也涉及到迭代器区间问题,关于该问题的注意事项就不在啰嗦了一、全部排序sort、stable_sortsort是一种不稳定排序,使用时需要包含头文件algorithm默认可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。如果只传入这两...
分类:
编程语言 时间:
2015-04-14 16:13:39
阅读次数:
244