冒泡排序的思路:比较相邻的两个数,如果逆序,则交换,最终最大的数在最后一个位置
代码做了一点优化,加了一个flag,如果某趟所有相邻的数不需要交换。则表示所有数已经有序。排序提前结束。
时间复杂度:o(N^2)----最坏的情况
空间复杂度:o(1)
稳定性:稳定排序
package wd;
class ha{
public void sortmaopao(int a[]) {
for(int i=0;i<a.length;i++) {
Boolean flag=true;
for(int j=0;j<a.length-1-i;j++) {
int temp=0;
if(a[j]>a[j+1]) {
flag=false;
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
if(flag==true) {
System.out.println("已经排好序");
break;
}
}
}
}
public class maopao {
public static void main(String[] args) {
ha h=new ha();
int a[]= {1,2,3,4,5};
h.sortmaopao(a);
for(int i=0;i<a.length;i++) {
System.out.println(a[i]);
}
}
}