每个值后面的C#插入排序

时间:2013-10-28 17:22:27

标签: c# arrays sorting insertion-sort

每次用户输入值后,如何运行“插入排序”代码。请注意,我对编程知之甚少,因此可以欣赏示例或准备好使用代码。

    Console.Write("How long the Insertion sort list should be?: ");
    var countString = Console.ReadLine();
    int count = Convert.ToInt32(countString);
    int[] data = new int[count];

    for (int i = 0; i < count; i++)
    {

        var input = Console.ReadLine();
        data[i] = Convert.ToInt32(input);

        Console.WriteLine(input); // << HERE THE SORTING SHOULD HAPPEN AFTER EACH VALUE THAT I ADD.

    }


    int j = 0;
    int help = 0;

    for (int i = 1; i < data.Length; i++) 
    {
        j = i;
        help = data[i];

        while (j > 0 && help < data[j - 1])
        {
            data[j] = data[j - 1];
            j--;
        }

        data[j] = help;
    }

    foreach (var i in data)
    {
        Console.Write("{0}, ", i);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以直观地将代码划分为两部分。第一部分是插入值。第二部分对这些值进行排序。因此,您必须切割第二部分并插入到应该进行排序的地方,我希望您能找到这个地方;)

另外,您应该考虑将第二个i中的for替换为其他内容,例如使用k

祝你好运