中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Java插入排序算法是什么及怎么使用

發布時間:2022-12-14 16:55:05 來源:億速云 閱讀:121 作者:iii 欄目:開發技術

本篇內容主要講解“Java插入排序算法是什么及怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java插入排序算法是什么及怎么使用”吧!

1.插入排序簡介

插入排序,一般也被稱為直接插入排序。對于少量元素的排序,它是一個有效的算法。插入排序是一種最簡單的排序方法,它的基本思想是將一個記錄插入到已經排好序的有序表中,從而一個新的、記錄數增1的有序表。在其實現過程使用雙層循環,外層循環對除了第一個元素之外的所有元素,內層循環對當前元素前面有序表進行待插入位置查找,并進行移動

Java插入排序算法是什么及怎么使用

2.插入排序思想及圖解

插入排序的基本思想如下:

把n個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含n-1個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為一個新的有序表。

以序列:{55, 85, 21, 12, 5} 為例, 圖解如下:

Java插入排序算法是什么及怎么使用

粉紅色部分為每輪認定的有序部分,其余顏色為認定的無序部分。綠色標識為每輪遍歷的無序序列的位置,將該位置的元素逐一與有序部分進行比較,找到合適的位置進行順序表的插入操作。

3.插入排序代碼實現

import java.util.Arrays;

/**
 * @author 興趣使然黃小黃
 * @version 1.0
 * 插入排序
 */
public class InsertSort {

    public static void main(String[] args) {
        int[] array = {55, 85, 21, 12, 5};
        System.out.println("排序前: " + Arrays.toString(array));
        insertSort(array);
        System.out.println("排序后: " + Arrays.toString(array));
    }

    //插入排序
    public static void insertSort(int[] arr){
        //邊界條件
        if (arr.length < 1){
            return;
        }
        for (int i = 1; i < arr.length; i++) {
            //定義待插入的位置和待插入的數
            int insertIndex = i-1; //arr[i]前面的位置,便于插入
            int insertVal = arr[i]; //先將待插入的值保存
            //給insertVal找到待插入的位置
            //1.insertIndex > 0防止越界
            //2.insertVal < arr[insertIndex] 說明還未找到待插入的位置
            while (insertIndex >= 0 && insertVal < arr[insertIndex]){
                arr[insertIndex+1] = arr[insertIndex];
                insertIndex--;
            }
            if (insertIndex != i){
                arr[insertIndex+1] = insertVal; //插入
            }
            System.out.println("第" + i + "輪: " + Arrays.toString(arr));
        }
    }
}

Java插入排序算法是什么及怎么使用

到此,相信大家對“Java插入排序算法是什么及怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤阳县| 福泉市| 胶州市| 庆安县| 兰西县| 叶城县| 丘北县| 湖口县| 林芝县| 壶关县| 清河县| 高唐县| 千阳县| 米泉市| 牙克石市| 靖西县| 雷山县| 宁南县| 迁西县| 青田县| 新昌县| 天台县| 西城区| 化隆| 海安县| 浦江县| 博客| 航空| 荣昌县| 清丰县| 屏边| 鲁山县| 沽源县| 孟连| 莱西市| 墨玉县| 尉氏县| 嘉善县| 内江市| 元氏县| 汶川县|