2013-10-28 38 views
0

如何在每次用户输入值后运行插入排序代码。请注意,我对编程没有太多的知识,因此请注意显示示例或准备使用的代码。每个值后的C#插入排序

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); 
    } 
} 
+0

写出来,究竟需要首先试图代码之前在英国发生。当你有一个新的项目添加什么是需要发生的各种步骤?在一张纸上写出一个例子,说明数组应该是什么样的,以及在循环的每次迭代中应该如何改变它。一旦你知道需要做什么,你可以自己编码每个步骤(而不是试图找到整个问题的答案),或者查看如何执行每个单独的步骤,这些步骤肯定会有现有资源帮你。 – Servy

+0

这提供了一个很好的解释: http://stackoverflow.com/questions/12377745/insertion-sort-in-c-sharp –

回答

0

您可以在视觉上将您的代码分成两部分。第一部分是插入值。第二部分对这些值进行排序。所以你必须剪下第二部分,并在需要进行分类的地方插入,我希望你能找到这个地方;)

也认为你应该用第二个for替换i与其他东西,例如与k

好运