例一:關鍵字序列T=(13,6,3,31,9,27,5,11) 請寫出直接插入排序的中間過程序列。using System;
for (i = 1; i < myArray.Length; i++)
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sort
{
class InsertSorter
{
public static int[] Sort(int[] a)
{
InsertSort(a);
return a;
}
private static void InsertSort(int[] myArray)
{
int i, j,temp;
{
temp = myArray[i];//保存當前數據,當前數據即待插入的數據
//將數組標號i及i之前的元素,排成遞增序列
for (j = i - 1; j >= 0 && myArray[j] >temp; j--)
{
myArray[j + 1] = myArray[j];
}
myArray[j + 1] = temp;
}}
}
}
【13】, 6, 3, 31, 9, 27, 5, 11
【6, 13】, 3, 31, 9, 27, 5, 11
【3, 6, 13】, 31, 9, 27, 5, 11
【3, 6, 13,31】, 9, 27, 5, 11
【3, 6, 9, 13,31】, 27, 5, 11
【3, 6, 9, 13,27, 31】, 5, 11
【3, 5, 6, 9, 13,27, 31】, 11
【3, 5, 6, 9, 11,13,27, 31】
小注:每次小循環只排列數組0到i這些元素的順序(與冒泡類似) 例二: 例三: