1. 程式人生 > >加監視哨的直接插入排序

加監視哨的直接插入排序

length 設置 for package [] pac 結束 ati ava

package algorithm;

public class StraightInsertSort 
{
	/**
	 * 加監視哨的直接插入排序
	 * @param arr
	 */
	public static void insertSort(int[] arr)
	{
		int i,j;
		for(i=2;i<arr.length;i++)
		{
			arr[0]=arr[i]; //設置arr[0]為監視哨,
	//即每一個數組元素在比較前存入arr[0],作為循環結束條件
			for(j=i-1;arr[j]>arr[0];j--)
			{
				arr[j+1]=arr[j];
			}
			arr[j+1]=arr[0];
		}
	}
	public static void main(String[] args)
	{
		int[] arr= {0,5,6,8,99,1,2,0,4,888,3};//數組元素實際存放位置從1到n-1
		insertSort(arr);
		for(int i=1;i<arr.length;i++)
			System.out.print(arr[i]+" ");
	}
}

  

加監視哨的直接插入排序