【Java】五种常见排序之-----------冒泡排序
生活随笔
收集整理的這篇文章主要介紹了
【Java】五种常见排序之-----------冒泡排序
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
冒泡排序:
?
- 原理: 將關(guān)鍵字較小的值不斷地上浮,將關(guān)鍵字值較大的不斷下沉;
- 時(shí)間復(fù)雜度:O(n^2)
- 空間復(fù)雜度:最優(yōu)(即已經(jīng)排好序)為0,平均空間復(fù)雜度為O(1);
- 核心代碼:
?
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(num[i]>num[j]){//數(shù)值較大的數(shù)進(jìn)行交換下沉
int temp;
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
【Java實(shí)現(xiàn)完整代碼】
?
package paixu;?
?
/**?
?
* @author xpengfei?
?
*/?
?
import java.util.Scanner;?
?
/*?
?
* 效率最低的冒泡排序?
?
* 說(shuō)明冒泡排序的時(shí)間復(fù)雜度符合O(n^2)。?
?
*??
?
* 時(shí)間復(fù)雜度,最優(yōu)與最差都需要[n*(n-1) ] / 2次比較,所以時(shí)間復(fù)雜度為O(n^2).?
?
* 空間復(fù)雜度,最優(yōu)即已排好序,空間復(fù)雜度為0;平均空間復(fù)雜度為O(1)。?
?
*/?
?
public class sortOne {?
?
Scanner input=new Scanner(System.in);?
?
private int[]num;//存放隨機(jī)數(shù)數(shù)組?
?
private int n;//待輸入的數(shù)組規(guī)模n?
?
public sortOne(){//構(gòu)造函數(shù),初始化數(shù)組;?
?
System.out.println("請(qǐng)輸入數(shù)組大小N的值:");?
?
n=input.nextInt();?
?
num=new int[n];?
?
System.out.println("隨機(jī)生成的數(shù)組如下:");?
?
for(int i=0;i<n;i++){?
?
num[i]=(int)(Math.random()*1000);?
?
System.out.println(num[i]);?
?
}?
?
}?
?
public void sort(){//冒泡排序核心算法?
?
for(int i=0;i<n;i++){?
?
for(int j=i;j<n;j++){?
?
if(num[i]>num[j]){//數(shù)值較大的數(shù)進(jìn)行交換下沉?
?
int temp;?
?
temp=num[i];?
?
num[i]=num[j];?
?
num[j]=temp;?
?
}?
?
}?
?
}?
?
}?
?
public void displayResult(){//該函數(shù)將排好序的數(shù)組進(jìn)行有序輸出?
?
System.out.println("數(shù)組排序后的結(jié)果為:");?
?
for(int i=0;i<n;i++){?
?
System.out.println(num[i]);?
?
}?
?
}?
?
public static void main(String []args){?
?
sortOne sone=new sortOne();?
?
sone.sort();?
?
sone.displayResult();?
?
}?
?
}?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xpfei/p/7450815.html
總結(jié)
以上是生活随笔為你收集整理的【Java】五种常见排序之-----------冒泡排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 联合线程
- 下一篇: Ubuntu 8.04 Linux系统下