溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java之Algorithm_analysis的示例分析

發(fā)布時(shí)間:2021-09-13 09:16:29 來源:億速云 閱讀:117 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Java之Algorithm_analysis的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

/*
冒泡排序:雙層循環(huán)
1.外層循環(huán):控制排序輪數(shù),排序數(shù)組長度減1(最后一次循環(huán)只剩下一個(gè)元素,不需要比較,同時(shí)數(shù)組已完成排序。
 
2.內(nèi)層循環(huán):比較數(shù)組臨近元素大小,確定是否交換位置,對比和交換次數(shù)隨排序輪數(shù)而減少。
 */
public class BubbleSort {
    public void sort(int[] array){
        for(int i=1;i<array.length;i++){//控制輪數(shù)
            //比較相鄰兩個(gè)元素,較大的數(shù)往后冒泡
            for(int j=0;j<array.length-i;j++){//控制交換次數(shù)
                if(array[j]>array[j+1]){//第一個(gè)數(shù)大于第二個(gè)數(shù),進(jìn)行交換
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    System.out.println("第-------"+j+"-------次");
                }
                System.out.println("第"+i+"輪");
                showArray(array);
            }
        }
        showArray(array);
    }
    /*
    顯示數(shù)組
     */
    public void showArray(int[] array){
        for(int i:array){//遍歷數(shù)組
            System.out.print("  》"+i);
        }
        System.out.println();
    }
    public static void  main(String[] args) {
        //創(chuàng)建一個(gè)數(shù)組,這個(gè)數(shù)組元素是亂序的
        int[] array = {63,4,24,1,3,15};
        System.out.println("數(shù)組長度:"+array.length);
        System.out.println("=========================");
        //創(chuàng)建冒泡排序類對象
        BubbleSort sorter = new BubbleSort();
        //調(diào)用排序方法將數(shù)組排序
        sorter.sort(array);
    }

顯示結(jié)果

數(shù)組長度:6
=========================
第-------0-------次
第1輪
》4  》63  》24  》1  》3  》15
第-------1-------次
第1輪
》4  》24  》63  》1  》3  》15
第-------2-------次
第1輪
》4  》24  》1  》63  》3  》15
第-------3-------次
第1輪
》4  》24  》1  》3  》63  》15
第-------4-------次
第1輪
》4  》24  》1  》3  》15  》63
第2輪
》4  》24  》1  》3  》15  》63
第-------1-------次
第2輪
》4  》1  》24  》3  》15  》63
第-------2-------次
第2輪
》4  》1  》3  》24  》15  》63
第-------3-------次
第2輪
》4  》1  》3  》15  》24  》63
第-------0-------次
第3輪
》1  》4  》3  》15  》24  》63
第-------1-------次
第3輪
》1  》3  》4  》15  》24  》63
第3輪
》1  》3  》4  》15  》24  》63
第4輪
》1  》3  》4  》15  》24  》63
第4輪
》1  》3  》4  》15  》24  》63
第5輪
》1  》3  》4  》15  》24  》63
》1  》3  》4  》15  》24  》63

/*直接選擇排序:指定排序位置與其他元素比較。交換次數(shù)減少。*/

public class SelectSort {
    public void sort(int[] array) {
        int index;
        for (int i = 1; i < array.length; i++) {
            index = 0;
            for (int j = 1; j <= array.length - i; j++)
                if (array[j] > array[index]) {
                    index = j;
                }
            //交換位置array.length-i和index(最大值)上的兩個(gè)數(shù)
            int temp = array[array.length-i];
            array[array.length - i] = array[index];
            array[index] = temp;
        }
        showArray(array);
    }
    /*
    顯示數(shù)組
     */
    public void showArray(int[] array) {
        for (int i : array) {//遍歷數(shù)組
            System.out.print("  》" + i);
        }
        System.out.println();
    }
    public static void main(String[] args) {
        //創(chuàng)建一個(gè)數(shù)組,這個(gè)數(shù)組元素是亂序的
        int[] array = {63, 4, 24, 1, 3, 15};
        System.out.println("數(shù)組長度:" + array.length);
        System.out.println("=========================");
        //創(chuàng)建冒泡排序類對象
        SelectSort sorter = new SelectSort();
        //調(diào)用排序方法將數(shù)組排序
        sorter.sort(array);
    }
}

運(yùn)行結(jié)果:

數(shù)組長度:6
=========================
》1  》3  》4  》15  》24  》63

以上是“Java之Algorithm_analysis的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI