排序算法对比总结
墨初 知识笔记 130阅读
排序算法性能如何比较?
答:排序算法 的 比较 :性能的 比较 可以从以下5个方面进行分析:时间复杂度(平均情况、最好情况、最差情 【 1 】 选择 排序 、快速 排序 、希尔 排序 、堆 排序 不是稳定的 排序算法 冒泡 排序 、插入 排序 、归并 排序 和基数 排序 都是稳定的 排序算法 。
什么是排序算法的稳定性问题?
答:另外在说一下关于排序算法的 稳定性问题 : 排序算法稳定性的简单形式化定义为:如果 arr [i] = arr [j] ,排序前 arr [i] 在 arr [j] 之前,排序后 arr [i] 还在 arr [j] 之前,则称这种排序算法是稳定的。 通俗地讲就是保证排序前后两个相等的数的相对顺序不变。 ( 可以通过自定义比较函数来去除稳定性问题 ) 举例:对于冒泡排序,原本是稳定的排序算法,如果将记录交换的条件改成 arr [i] >= arr [i + 1] ,则两个相等的记录就会交换位置,从而变成不稳定的排序算法。 进行 n-1 次排序。
什么是排序?
答:前言 排序 是按照关键字的非递减或非递增顺序对一组记录重新进行排列的操作,是对无规律的一组序列转化为递增或递减的操作。 排序 的稳定性: 当 排序 记录中的关键字都部相同时,则任何一个记录的无序序列经过 排序 后得到的结果都唯一,反之,若存在两个或多个关键字相同时,则得到的结果可能不唯一。
什么是计数排序?
答:计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。 网络中很多博文写的桶排序实际上都是计数排序,并非标准的桶排序,要注意辨别。 我们使用 动态数组ArrayList 作为桶,桶里放的元素也用 ArrayList 存储。