原文链接:http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试...
分类:
编程语言 时间:
2015-09-20 10:29:04
阅读次数:
147
1.简介希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。2.算法实现原始的算法实现在最坏的情况下需要进行O(n2)的比较和交换。V. Pratt的书[1] 对算法进行了少量修改,可以使得性能提升至O(n log2 n)。这比最好的比较算法的O(n log ...
分类:
编程语言 时间:
2015-09-13 23:10:39
阅读次数:
327
题意:裸最小生成树,主要是要按照字典序。注意sort排序是不稳定排序,那么cmp中的w相同时怎么排要指出。思路:模板prim:kruskal:#include#include#include#includeusing namespace std;#define MAXN 110//最大点数#defi...
分类:
其他好文 时间:
2015-09-05 15:02:54
阅读次数:
233
函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_copy 对给定区间复制并排序 nth_element 找出给定区间的某个位置对应的元素 is_sorted...
分类:
编程语言 时间:
2015-09-04 16:57:24
阅读次数:
219
一、概念堆排序是利用堆这种数据结构的性质设计的一种排序方式。堆是一个近似完全二叉树的结构,并满足性质:子节点的键值或则索引值总是小于等于(或则大于等于)父节点的。是不稳定排序。二、原理1.首先将待排序的数组进行堆化,构建成堆结构2.将堆首和堆尾进行交换3.将堆大小..
分类:
编程语言 时间:
2015-09-01 00:04:12
阅读次数:
265
排序根据是否使用外存分为内排序和外排序,内排序只使用内存进行数据存储,外排序由于数据量比较大需要借助外存。
排序的稳定性:排序的稳定性是指排序之后相同的数据元素相对位置不变则为稳定排序,否则为不稳定排序。
插入排序
直接插入排序
思想:将一个记录插入到已经排序的有序表中,从而得到一个新的、个数加1的有序表。这个过程在查找位置过程中进行记录移动,而不用显示的交换元素
public...
分类:
编程语言 时间:
2015-08-18 19:35:11
阅读次数:
155
各种基本排序算法的总结本文是为了加深自己对各种算法的理解,部分摘自维基百科,这里主要介绍较为常用的排序方法,一些生僻的算法不做介绍。.总结各种算法之前,现介绍下几个概念:1、稳定度:稳定排序算法会依照相等的关键(换言之就是值)维持纪录的相对次序。也就是一个排序算法是稳定的,就是当有两个有相等关键的纪...
分类:
编程语言 时间:
2015-08-18 15:39:32
阅读次数:
165
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定...
分类:
编程语言 时间:
2015-08-05 10:26:55
阅读次数:
114
排序的稳定性:
在带排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。
稳定的排序有:
不稳定的排序有:...
分类:
编程语言 时间:
2015-08-04 23:05:47
阅读次数:
179
计数排序是稳定排序,而且是线性时间内的排序算法,时间复杂度是O(n + k)其中k是待排序数组的范围。计数排序不是原址排序,空间复杂度是O(n + k)
//k是指A中的数组范围是0~k 包括0和k
void count_sort(int A[], int B[], int n, int k)
{
int *C = (int *)malloc(sizeof(int) * ...
分类:
编程语言 时间:
2015-08-04 00:39:31
阅读次数:
131