2013-10-28 30 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

好運