圖解Java中插入排序算法的原理與實現(xiàn)
一、基本思想
插入排序(Insertion-Sort)的算法描述是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。
二、算法分析
1、算法描述
一般來說,插入排序都采用in-place在數(shù)組上實現(xiàn)。具體算法描述如下:
- 從第一個元素開始,該元素可以認為已經(jīng)被排序;
- 取出下一個元素,在已經(jīng)排序的元素序列中從后向前掃描;
- 如果該元素(已排序)大于新元素,將該元素移到下一位置;
- 重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置;
- 將新元素插入到該位置后;
- 重復(fù)步驟2~5。
2、過程分析
(1)、將第一個元素 (1) 標記為已經(jīng)排序過。

(2)、提取第一個沒有排序過的元素 (28)。

(3)、找出插入提取元素的地方;和已經(jīng)排序過的元素 1 比較。

(4)、1 > 28 不成立(False), 在現(xiàn)有位置上插入一個元素。

(5)、找出插入提取元素的地方;和已經(jīng)排序過的元素 28 比較。

(6)、28 > 3 成立(True), 則將現(xiàn)在已經(jīng)排序過的元素({val1}) 向右移動1格。

(7)、找出插入提取元素的地方;和已經(jīng)排序過的元素 1 比較。

(8)、1 > 3 不成立(False), 在現(xiàn)有位置上插入一個元素。

(9)、以此類推

三、算法實現(xiàn)
package com.algorithm.tenSortingAlgorithm;
import java.util.Arrays;
public class InsertionSort {
private static void insertionSort(int[] arr) {
int preIndex, current;
for (int i = 1; i < arr.length; i++) {
preIndex = i - 1;
current = arr[i];
while (preIndex >= 0 && arr[preIndex] > current) {
arr[preIndex + 1] = arr[preIndex];
preIndex--;
}
arr[preIndex + 1] = current;
}
}
public static void main(String[] args) {
int[] arr = {1,28,3,21,11,7,6,18};
insertionSort(arr);
System.out.println(Arrays.toString(arr));
}
}
到此這篇關(guān)于圖解Java中插入排序算法的原理與實現(xiàn)的文章就介紹到這了,更多相關(guān)Java插入排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA啟動tomcat項目報錯53820 socket closed問題及解決
IDEA啟動Tomcat項目時報錯,原因是IDEA關(guān)閉時Tomcat未正常關(guān)閉,導(dǎo)致端口被占用,解決方法是通過任務(wù)管理器關(guān)閉占用高內(nèi)存的Java進程,通常是IDEA進程下面的,或者使用命令行找到PID并強制終止進程2024-12-12
使用restTemplate遠程調(diào)controller路徑取數(shù)據(jù)
這篇文章主要介紹了使用restTemplate遠程調(diào)controller路徑取數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Mybatis-plus配置分頁插件返回統(tǒng)一結(jié)果集
本文主要介紹了Mybatis-plus配置分頁插件返回統(tǒng)一結(jié)果集,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Java設(shè)計模式之代理模式原理及實現(xiàn)代碼分享
這篇文章主要介紹了Java設(shè)計模式之代理模式原理及實現(xiàn)代碼分享,設(shè)計代理模式的定義,靜態(tài)代理,動態(tài)代理,jdk動態(tài)代理實現(xiàn)步驟,原理及源碼等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。2017-11-11

