冒泡排序:
思路就是交换排序,通过相邻数据的交换来达到排序的目的
流程:
①对数组中的各数据,依次比较相邻的两个元素的大小
②如果前面的数据大于后面的数据就交换两个数据,经过第一轮的多次比较排序后,便可将最小的数据排好
③再用同样的方法把剩下的数据逐个比较
代码展示:
package third;
public class mp {
public static void mp(int a[]){
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-1;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
public static void main(String[] args) {
int [] shuzu=new int [10];
for(int i=0;i<shuzu.length;i++){
shuzu[i]=(int)(100+Math.random()*(100+1));
}
System.out.print("排序前的数组为:\n");
for (int i=0;i<shuzu.length;i++){
System.out.print(" "+shuzu[i]);
}
System.out.print("\n");
mp(shuzu);
System.out.println("排序后的数组为:");
for(int i=0;i<shuzu.length;i++){
System.out.print(" "+shuzu[i]);
}
System.out.print("\n");
}
}
算法分析:
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:稳定
最佳情况:当被排序文件初态为正序时,算法的时间复杂度为O(n)