美文网首页程序员
算法学习00_排序概述篇

算法学习00_排序概述篇

作者: 追日填海 | 来源:发表于2018-10-04 15:25 被阅读11次

问题定义

《算法导论》中对于排序问题定义如下

输入:一个n个数的序列 <a_1, a_2, \cdots, a_n>.
输出:输入序列的一个重排<a_1', a_2',\cdots, a_n'>使得a_1' \leq a_2'\leq ... \leq a_n
实际待排序的数很少是单独的数值,他们通常是称为记录(record)的数据集的一部分。每个记录包含一个关键字,就是排序问题中要重排的值。记录的剩余部分由卫星数据(satellite data)组成,通常与关键字是一同存取。

九种经典排序算法

9种经典排序算法

排序算法的性质

时间复杂度

对于算法的时间复杂度有严格的数学定义,不去细究,感性上的认识,大O表示算法耗费的时间和输入规模的关系。

稳定性

排序前后相同的元素相对位置不变的性质称为稳定性。如下序列中存在两个相同元素2,对于稳定的排序算法,排序后两个元素相对位置不变,否则不稳定。
{1,-1, 2, 2, 3, 4}
稳定性和算法的实际实现相关,同一个算法虽然理论上可以做到稳定,但是由于具体实现细节不同可能导致其不稳定。

原址排序

原址排序是指算法排序过程仅有常数个元素存储在输入数组之外。

相关文章

  • 算法学习00_排序概述篇

    问题定义 《算法导论》中对于排序问题定义如下 输入:一个n个数的序列 .输出:输入序列的一个重排使得。实际待排序的...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 排序算法篇_概述

    在各类算法问题中,排序算法是最基本的问题。现实生活中很多方面都需要将一些数据从小到大或者从大到小的顺序来进行排列。...

  • 排序算法

    概述 一般排序算法(以元素比较为基础) => 快速排序、归并排序、插入排序、冒泡排序、堆排序 特殊排序算法 => ...

  • 排序一:冒泡、插入、选择

    文章结构 概述 冒泡排序 插入排序 选择排序 1. 概述 常见的排序算法有:冒泡排序、插入排序、选择排序、归并排序...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • 常见十大排序算法概述

    排序算法概述 网上常见的排序算法有十种:冒泡排序、快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序、计数排...

  • 算法-插入排序

    算 法:插入排序算法时间复杂度: 插入排序算法描述 插入排序伪代码 插入排序实现 插入排序算法概述 插入排...

  • 11、【排序】快速排序(1)

    1、概述 快速排序(Quick Sort)是一种高级排序算法。 快速排序算法相对来说比较复杂,因为快速排序算法所延...

网友评论

    本文标题:算法学习00_排序概述篇

    本文链接:https://www.haomeiwen.com/subject/eryxaftx.html