如何分析一个排序算法? 分析一个排序算法的三要素:排序算法的执行效率、排序算法的内存消耗以及排序算法的稳定性。 排序算法的执行效率 对于排序算法执行效率的分析,一般是从以下三个方面来衡量: 最好情况、最坏情况、平均情况时间复杂度 时间复杂度的系数、常数、低阶 比较次数和交换 ...
这三种排序有俩个过程: .比较俩个数据。 .交换俩个数据或复制其中一项。 这三种排序的时间级别 冒泡排序:比较 N N ... N N N 交换 N N 总时间 N 选择排序:比较 N N ... N N N 交换 N N N 总时间N N 插入排序:第一轮最多比较一次,第二轮最多比较俩次,最后一轮比较N 次,所以最多比较N N 。 复制的次数和比较的次数大致相等,但是复制消耗的时间比交换要小. ...
2017-09-16 20:54 0 6172 推荐指数:
如何分析一个排序算法? 分析一个排序算法的三要素:排序算法的执行效率、排序算法的内存消耗以及排序算法的稳定性。 排序算法的执行效率 对于排序算法执行效率的分析,一般是从以下三个方面来衡量: 最好情况、最坏情况、平均情况时间复杂度 时间复杂度的系数、常数、低阶 比较次数和交换 ...
1、冒泡算法。 冒泡算法是最基础的一个排序算法,每次使用第一个值和身后相邻的值进行比较,如果是升序将大数向左边交换,降序则向右边交换。最终将大数移动到一边,最终排成一个序列: public class Sorting { public void BubbleSorting ...
冒泡排序 原理: 从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置。 指针由第一个数据移向第二个数据,第二个数据与第三个数据相比较,如果第三个数据小于第二个数据,则交换两个数据的位置 ...
结果: ...
一:冒泡法排序 //冒泡排序 注:从小到大排 //特点:效率低,实现简单 //思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。 这只是冒泡排序的一种,当然也可以从后往前排。 算法步骤 ...
一、冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次 ...
相同点: 冒泡排序和插入排序都是把数组分成两块,一块是已排好序,剩下的是未排好序。按照标准的时间复杂度和空间复杂度来算,两个算法都是O(n^2)时间复杂度,和常数空间复杂度。两个算法都是通过一步一步的移动元素达到最后的位置。 有两点差异我比较关注:元素比较的次数和元素移动的次数。 元素比较次数 ...
文章总结了几种常用排序算法: 冒泡排序,选择排序,插入排序,希尔排序,快速排序。 假设有一队棒球队员 如图3.1,3.2,需要对棒球队员进行排序: 我们知道计算机不能像人一样通揽所有棒球队员。计算机只能在同一时间内对两个队员进行比较,因此计算机只能一步步解决具体问题和遵循一些简单的规则 ...