问题定义
《算法导论》中对于排序问题定义如下
输入:一个n个数的序列 .
输出:输入序列的一个重排使得。
实际待排序的数很少是单独的数值,他们通常是称为记录(record)的数据集的一部分。每个记录包含一个关键字,就是排序问题中要重排的值。记录的剩余部分由卫星数据(satellite data)组成,通常与关键字是一同存取。
九种经典排序算法
9种经典排序算法排序算法的性质
时间复杂度
对于算法的时间复杂度有严格的数学定义,不去细究,感性上的认识,大O表示算法耗费的时间和输入规模的关系。
稳定性
排序前后相同的元素相对位置不变的性质称为稳定性。如下序列中存在两个相同元素2,对于稳定的排序算法,排序后两个元素相对位置不变,否则不稳定。
{1,-1, 2, 2, 3, 4}
稳定性和算法的实际实现相关,同一个算法虽然理论上可以做到稳定,但是由于具体实现细节不同可能导致其不稳定。
原址排序
原址排序是指算法排序过程仅有常数个元素存储在输入数组之外。
网友评论