免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

插入排序java代碼和用時測試-創新互聯

一.java代碼部分

網站建設公司,為您提供網站建設,網站制作,網頁設計及定制網站建設服務,專注于成都企業網站定制,高端網頁制作,對成都LED顯示屏等多個行業擁有豐富的網站建設經驗的網站建設公司。專業網站設計,網站優化推廣哪家好,專業seo優化排名優化,H5建站,響應式網站。
public static void Insert_Sort(int []array)
    {
        for (int i=1;i 0 &&temp< array[j - 1]; j--) {
                array[j] = array[j - 1];
            }
            array[j]=temp;
        }
    }

二.代碼分析部分?

i變量 存儲的是待排序部分第一個元素的下標

temp 儲存的是數組下標為i的值

j變量 存儲的是需要插入的數組下標

插入排序中是將一個未排序的元素插入前面已經排序的部分 也就是說在實際循環中下標i之前的數組已經是有順序的了 所需要的只是在前面的有序數組中找到 一個位置合適的位置插入 依舊使的數組有序 就可以了?

首先

外層循環變量i從1開始 數組后面的9個元素需要進行插入操作 每次循環后已經排序的部分長度加1
? for (int i=1;i

temp 變量儲存待排序部分第一個元素的值
? int temp=array[i];

默認從小到大排序?

循環的判斷條件是如果temp小于下標j-1處的值?這個主要能夠確定 temp在哪里執行插入操作 循環直到temp大于等于下標j-1的值 說明下標為j的部分就是temp需要插入的地方?但是在數組中原本下標為j的部分就已經儲存了元素 這個就需要觀察這個循環體了

循環體?array[j] = array[j - 1]注意 在這次循環條件不滿足的時候這個j處表示是temp變量值插入的部分 但是這次循環的j處的值在j+1處已經有一份了 這個主要因為循環體在不滿足表達式的上一個循環中所做的操作??所以才可以直接將temp的值插入就去保證數據的完整性?

for ( j = i; j >0 &&temp< array[j - 1]; j--) {
    array[j] = array[j - 1];
}

最后部分就是在下標為j的部分插入元素

array[j]=temp;
? }
? }

具體效果如下

三.最好最壞情況分析?

最壞情況就是 數組是逆序的 時間復雜度為O(^{n^{2}})?

最好情況就是 數組已經是有序的了 那么內層循環條件始終為假 相當于沒有內層循環 時間復雜度為O(n)

平均時間復雜度??O(^{n^{2}})

四.用時時間測試

排序耗時分析需要用到一個方法 該方法是System類的靜態方法 返回值是Long型的具體是

System.currentTimeMillis();返回值是從1970年1月1日到現在的毫秒值?

 ? long begin = System.currentTimeMillis();
? ? ? ? Sort.Insert_Sort(array);
? ? ? ? long end=System.currentTimeMillis();
? ? ? ? // 記錄 多少毫秒
? ? ? ? long ms=(end-begin);
? ? ? ? System.out.println("\n運行時間排序"+max+"數字總共耗時"+ms+"毫秒");

時間測試

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

文章題目:插入排序java代碼和用時測試-創新互聯
文章路徑:http://newbst.com/article16/dgiidg.html

成都網站建設公司_創新互聯,為您提供網站策劃電子商務標簽優化ChatGPT云服務器移動網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司