1. 程式人生 > >Java演算法——直接插入排序

Java演算法——直接插入排序

直接插入排序

前言

直接插入是一種穩定的插入排序,效率較高,而且時間複雜度也低,因為只是在一個數組內部進行內排,但是隻適用於在有一些以前就排好的順序的陣列內部,如果在很長又很雜亂的陣列內部進行排序的話,會讓效率降低。

直接插入排序描述

首先定義一段長度為n的陣列,從最左邊開始:
第一趟的排序,只對前2個元素進行排序,
第二趟的排序,只對前3個元素進行排序,
第三趟的排序,只對前4個元素進行排序,
……

共計要進行n-1趟的排序。

程式碼圖解

在這裡插入圖片描述

程式碼

package Algorithm;

import java.util.ArrayList;
import
java.util.Scanner; /** * 直接插入排序:依次遍歷排序,直到全部讀取結束 */ public class charu_Sort { public static void main(String[] args) { int n = new Scanner(System.in).nextInt(); int []arr = new int[n]; System.out.println("給陣列依次賦值吧"); for(int i=0;i<n;i++) { arr[i] = new
Scanner(System.in).nextInt(); } for (int front=1;front<arr.length;front++){ int p =arr[front]; int behind; for (behind=front-1;behind>=0;behind--){ if(p<arr[behind]){ arr[behind+1]=arr[behind]; }
else break; } arr[behind+1]=p; } for(int u=0;u<arr.length;u++){ System.out.println(arr[u]); } } }