設定乙個變數t用來提取a[i],拿t與a[i]左側變數進行比較,比t大的元素右移一位,拿t來補入這個空位。注意,在**實現時若不注意設定變數t,而用a[i]直接比較的話,排序結果錯誤,因為當j=i-1時,a[j]這個數若大於a[i]需要右移則變成a[i],此時a[i]已經改變,再與之前的值比較,發生錯誤。
package com.zzh;
import edu.princeton.cs.algs4.stdin;
import edu.princeton.cs.algs4.stdout;
//public class test ;
insertsort(a);
for(int i=0;i=0;j--)
if (t} return a;
} }
插入排序的理解
插入排序 插入排序原理 將陣列中的每乙個元素與第乙個元素相比較 如果這個元素小於第乙個元素,則交換這兩個元素,然後迴圈這條規則。如圖 從圖中可以看到,我們可以把過程理解為將從陣列第二個數開始 先把這個數定為要插入的數 依次與前面的數相比較,如果後面的數小,則交換位置,直到換到不必它前面的數小為止 就...
對插入排序的理解
public class insertsort array j temp 一直移動到比temp值小為止,資料插入 1 for 迴圈控制的是假定的插入值 因此根據演算法思路,i 的初始值為1。把下標為i 的資料存入臨時變數temp中,遍歷陣列內除第乙個資料外的全部資料。2 while迴圈用來判斷比較 ...
理解氣泡排序和插入排序
我們還是用揭撲克牌來理解這兩種排序方法,我們需要從小到大來排序,假定最小的牌和最大的牌是未知的,那麼對於氣泡排序來講,過程就是揭起第一張牌,又揭起第二張牌,兩張牌比較,留下小的,又揭第三張牌,再與手中的牌比較,以此 那麼無論你手中現在是什麼牌,你都需要將所有的牌全部揭起來比較之後,才能確定你拿到的是...