文章目录
🐒个人主页:信计2102罗铠威
🏅算法思维框架
📖前言:
本篇博客主要以介绍十大排序算法中的冒泡排序、快速排序,有详细的图解、动画演示、良好的代码注释,帮助加深对这些算法的理解,进行查漏补缺~
🎀冒泡排序 时间复杂度O(n^2)
冒泡排序(Bubble Sort) 是一种简单直观的排序算法。它重复地走访要排序的数列,一次
比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直
到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元
素会经交换慢慢"浮"到数列的头部。
🎇1. 算法步骤思想
<1>比较相邻的元素。如果第一个比第二个大,就交换他们两个。
<2>对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元 素会是最大的数。
<3>重复<1><2>步骤,除了最后一个元素。 对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
🎇2.动画实现
🎇 3.代码实现
public void sort(int[] arr){
if(arr==null||arr.length<2){
return;
}
//思路:【冒泡排序】借助双循环,进行两两交换,将最大的“气泡”排到数组末尾
for (int i = 0; i <arr.length-1; i++) {
//排n-1趟
for (int j = 1; j <arr.length-i; j++) {
//比较n-1-i次,因为下标是从1开始取的
if(arr[j-1]