本文链接:https://blog.csdn.net/qq_41940721/article/details/103931082
冒泡排序
介绍:
冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元
素,如果他们的顺序错误就把他们交换过来。
排序思想:
- 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步
做完后,最后的元素会是最大的数。 - 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要
比较为止。
快速 排序
介绍:
快速排序通常明显比同为O(nlogn)的其他算法更快,因此常被采用,而且快
排采用了分治法的思想,所以在很多笔试面试中能经常看到快排的影子。可
见掌握快排的重要性。
快速排序(Quick Sort)由图灵奖获得者Tony Hoare发明,被列为20世纪十
大算法之一,是迄今为止所有内排序算法中速度最快的一种。冒泡排序的升
级版,交换排序的一种。快速排序的时间复杂度为O(nlog(n))。
演示
代码
// 冒泡排序
public class BubbleSortTest {
public static void main(String[] args) {
int[] arr = new int[]{43,42,56,75,64,58,97,86};
//冒泡排序 第一大轮
//八个元素比七轮 所以 arr.length - 1
for (int i = 0; i < arr.length - 1; i++) {
// 当 i=1时第二大轮 arr.length - 1 还要少一个
for (int j = 0; j < arr.length - 1 - i; j++) {
//当前一个比后一个数大时交换
if (arr[j] > arr[j + 1 ]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//遍历
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t ");
}
}
}