兩兩比較,左邊大,就互相交換。
有n個(gè)數(shù)需要排序就要比較(n-1)輪,每一輪會(huì)確定一個(gè)最大值,保存到數(shù)組末尾。
public static void main(String[] args) { //用戶輸入10個(gè)0~100之間的數(shù)并保存到數(shù)組中 Scanner scan = new Scanner(System.in); int[] bubbles = new int[10]; System.out.PRintln("請(qǐng)輸入10個(gè)0~100之間的整數(shù),每個(gè)數(shù)之間用空格隔開:"); for(int i=0;i<bubbles.length;i++){ bubbles[i] = scan.nextInt(); } scan.close(); System.out.println("你輸入的數(shù)組為: "+Arrays.toString(bubbles)); //冒泡排序 System.out.println("----------冒泡排序開始------------"); for(int i=0;i<bubbles.length-1;i++){ /* * i表示總的輪次 * 有n個(gè)數(shù)需要排序就要比較(n-1)輪 * 每一輪會(huì)確定一個(gè)最大值 * 每確定一個(gè)值,下一輪比較中,比較次數(shù)j的值就會(huì)減少1 */ for(int j=0;j<bubbles.length-1-i;j++){ //j表示每個(gè)輪次比較的次數(shù) if(bubbles[j]>bubbles[j+1]){ int max = bubbles[j+1]; bubbles[j+1] = bubbles[j]; bubbles[j] = max; } } System.out.println("第"+(i+1)+"輪排序結(jié)果為: "+Arrays.toString(bubbles)); } System.out.println("----------冒泡排序結(jié)束------------"); System.out.println("排序后的數(shù)組為: "+Arrays.toString(bubbles)); /** * JDk提供的數(shù)組快速排序算法:sort()方法---升序排序并保存 * 程序性能優(yōu)越 */ //系統(tǒng)隨機(jī)產(chǎn)生10個(gè)0~100的隨機(jī)整數(shù),保存到數(shù)組ksort中 int[] ksort = new int[10]; Random r = new Random(); for(int i=0;i<ksort.length;i++){ ksort[i] = r.nextInt(100)+1; } System.out.println("ksort= "+Arrays.toString(ksort)); Arrays.sort(ksort); System.out.println("快速排序之后的數(shù)組為: "+Arrays.toString(ksort)); }數(shù)組工具類Arrays中常用方法
Arrays.toString(數(shù)組名)---字符串形式輸出數(shù)組Arrays.copyOf(數(shù)組名,length)---復(fù)制數(shù)組(可以改變數(shù)組長(zhǎng)度,length表示指定數(shù)組長(zhǎng)度,如果是增加長(zhǎng)度就用元素默認(rèn)值填充)并返回新數(shù)組。
System.arraycopy(源數(shù)組,源數(shù)組中的起始位置,目標(biāo)數(shù)組,目標(biāo)數(shù)據(jù)中的起始位置,要復(fù)制的數(shù)組元素的數(shù)量)---復(fù)制數(shù)組
Arrays.fill(數(shù)組名,val)---用一個(gè)值初始化數(shù)組,val表示值
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注