您的位置:首页 > 其它

插入排序

2015-11-17 14:06 567 查看
static void Main(string[] args)
{
RArray arr = new RArray(10);
Random r = new Random(100);
for (int i = 0; i < 10; i++)
{
arr.Insert(r.Next(0, 100));
}
arr.DisPlayElements();

Console.WriteLine("Bubble Sort.....");
RArray list = BubbleSort(arr);
list.DisPlayElements();
Console.WriteLine("Selection Sort.....");
list = SelectionSort(arr);
list.DisPlayElements();
Console.WriteLine("Insert Sort.....");
list = InsertSort(arr);
list.DisPlayElements();
Console.ReadKey();
}


static RArray InsertSort(RArray arr)
{

int inner, temp;
for (int outer = 1; outer <= arr.upper; outer++)
{
temp = arr[outer];
inner = outer;
while (inner > 0 && arr[inner - 1] >= temp)
{
arr[inner] = arr[inner - 1];
inner -= 1;
}
arr[inner] = temp;
}
return arr;
}


插入排序算法有两层循环。 外层循环会逐个遍历数组元素, 而内层循环则会把外层循环所选
择的元素与该元素在数组内的下一个元素进行比较。 如果外层循环选择的元素小于内层循环
选择的元素, 那么数组元素都向右移以便为内层循环元素留出位置.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: