很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。
摘要:排序 所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。 对于排序: 我们首先要求其具有一定的稳定性 即当两个相
排序
所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。
对于排序:
我们首先要求其具有一定的稳定性
即当两个相同的元素同时出现于某个序列之中
则经过一定的排序算法之后
两者在排序前后的相对位置不发生变化。
所以,就让我们先来看看,面试中,有哪些超高频的排序算法
冒泡排序
冒泡排序可以说是最基础的了,无非就是两个 for 循环嵌套,然后两两比较交换罢了。这就不多说了。
步骤:
1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。
3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。
4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何
视频:
数据结构排序算法之冒泡排序演示
示例代码:
public void bubbleSort(int[] arr) {
int temp = 0;
boolean swap;
for (int i = arr.length - 1; i > 0; i--) { // 每次需要排序的长度
// 增加一个swap的标志,当前一轮没有进行交换时,说明数组已经有序
swap = false;
for (int j = 0; j < i; j++) { // 从第一个元素到第i个元素
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swap = true;
}
}
if (!swap){
break;
}
}
}
归并排序
对于归并排序而言,思想可以概括为:分而治之。也就是将一个数组,首先划分为一堆单个的数,然后再一个接一个的,进行两两有序合并,最后就得到了一个有序数组。
