冒泡排序是什么呢,就是在一个线性表中,假设这个线性表里有3个值吧,然后你对这个线性表进行操作排序,下面我们来说这个排序:
3个元素,下标分别是0、1、2;假设这个线性表为arr
接下来对这个arr操作{
从arr[0]开始遍历,比较arr【0】和arr【1】比较{
如果arr【0】大于arr【1】
那么两个元素换位置,否则不变位置,注意,是位置
换位置的函数你可以这样写
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
然后完成交换,下一次将arr【1】和arr【2】比较
这就完成第一轮,这个时候可能出现情况就是
arr【2】比arr【0】小对不对,然后开始下一轮,是下一轮。
总之就是想在水底的气泡一样,一点一点往上冒;
}
}
话不多说,直接看我的代码,应该能看懂;
package Sort_Code_introduce.BubbleSort;
public class Main {
public static void printArray(int[]arr){
for(int i:arr){
System.out.print(i+" ");
}
}
public static void BubbleSort(int []arr){
//sort
int len = arr.length;
if(len == 0 || len <= 2 ){
return ;
}//做一个安全判断
for(int i = 0 ; i < len - 1 ; i++){
for (int j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println();
}
public static void main(String[] args) {
int []arr = {7,9,56,1,8};
printArray(arr);
BubbleSort(arr);
printArray(arr);
}
}
最后是控制台的输出
快点赞,说谢谢爪子!!!!
爪子忙去啦!