本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、冒泡排序基本思想
两两比较相邻记录的元素,如果反序则交换,直到没有反序的记录为止。
二、冒泡排序步骤
1.从第一个元素开始,比较相邻的元素。如果第一个比第二个大,就交换他们两个的位置
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后(第一次循环结束),最后的元素会是最大的数
3.针对所有的元素重复以上的步骤,除了最后一个元素(每循环交换一次,下一次循环交换次数少一次)
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
三、动图演示
图片来源:www.runoob.com/w3cnote/bub…
正序最快,倒序最慢(可倒序循环)
四、代码示例
代码如下(Java):
package p1.JavaArray;
import java.util.Arrays;
import java.util.Scanner;
public class SortDemo1 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("数组元素个数:");
int num=sc.nextInt();
int[] a=new int[num];
bubbleSort(a,num);
}
public static void bubbleSort(int[] a,int num){
System.out.println("输入"+num+"个元素");
for(int i=0;i<a.length;i++)
{
Scanner sc=new Scanner(System.in);
int b=sc.nextInt();
a[i]=b;
}
for(int i=0;i<a.length-1;i++){//a.length-1: 循环
for(int j=0;j<a.length-1;j++){// a.length-1-i : 每交换一次,下一次交换次数少一次,
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(a));
// for(int x:a){
// System.out.println(x);
// }
}
}
总结
提示:这里对文章进行总结:
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。