1. 程式人生 > >排序算法----插入排序

排序算法----插入排序

imp 第一個 back 沒有 結果 clas ava temp ram

插入排序的思想:插入排序是在一個已經有序的小序列的基礎上,一次插入一個元素。當然,剛開始這個有序的小序列只有1個元素,就是第一個元素。比較是從有序序列的末尾開始,也就是想要插入的元素和已經有序的最大者開始比起,如果比它大則直接插入在其後面,否則一直往前找直到找到它該插入的位置。如果碰見一個和插入元素相等的,那麽插入元素把想插入的元素放在相等元素的後面。所以,相等元素的前後順序沒有改變,從原無序序列出去的順序就是排好序後的順序,所以插入排序是穩定的。

技術分享

import java.util.Arrays;

/**
 * 插入排序
 * @author wzc
 */
public class InsertSort {
     
public static void main(String[] args) { int []a={50,61,21,564,479,15,15,56,1,565}; //進行插入排序 InsertSort(a); //顯示結果 System.out.println(Arrays.toString(a)); } /** * 插入排序 * @param a 待排序的數組 */ private static void InsertSort(int[] a) {
int length=a.length; int temp=0; //從第二個數開始往前插入--->其實當前數前面的數都是有序的了 for(int i=1;i<length;i++){ for(int j=i;j>0&&a[j]<a[j-1];j--){//如果比前面的數小 就進行交換 temp=a[j]; a[j]=a[j-1]; a[j-1]=temp; }
//直到前面的數沒有比自己小的了 } } }

插入排序的時間復雜度為O(N)

排序算法----插入排序