java各种排序算法
终极管理员 知识笔记 80阅读
什么是排序算法?
答:引入: 排序算法就是指通过特定的算法因式将一组或多组数据按照既定模式进行重新排序,这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。 所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。 这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。
如何用 java实现归并排序?
答:用 java实现 归并排序 一. 归并排序的思路 归并排序通过不断的将原数组进行拆分 (通常拆分成左右两项),一直到剩下一项,然后分别将拆分的子数组进行合并,此时,两个子数组已经是排好序的,所以合并排序只需要进行一趟排序即可完成,所以此类排序需要两个步骤:1.拆分原数组 2.合并子数组。 因此此算法是经典的分治算法。
基数排序是稳定的排序算法吗?
答:基数排序是稳定的排序算法。 基数排序的时间复杂度为O (d (n+r)),d为位数,r为基数。 基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。 有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序,最后的次序结果就是高优先级高的在前,高优先级相同的情况下低优先级高的在前。
什么是选择排序?
答:选择排序即是给每个位置选择待排序元素中当前最小的元素。 比如给第一个位置选择最小的,在剩余元素里面给第二个位置选择次小的, 依次类推,直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。 那么,在一趟选择时,如果当前锁定元素比后面一个元素大,而后面较小的那个元素又出现在一个与当前锁定元素相等的元素后面,那么交换后位置顺序显然改变了。 呵呵! 比较拗口,举个例子:序列5 8 5 2 9, 我们知道第一趟选择第1个元素5会与2进行交换,那么原序列中两个5的相对先后顺序也就被破坏了。 所以选择排序不是一个稳定的排序算法。 堆排序是一种树形选择排序,是对直接选择排序的有效改进。