2016-11-29 98 views
0

我決定試着設計一些排序算法,看看像氣泡排序,看看我能否快速排序工作,但我面臨的第一個問題是我應該如何存儲和解決我的數據?它從哪裏來?排序練習,從哪裏開始?

我是否應該聲明一個包含幾千個索引字段的數組,並手動輸入並隨機化我的數據?或者我應該創建一個堆棧?

我該如何去獲得這些隨機數字?當然,我不一定要生成數以千計的手工輸入。

爲了簡單起見,我想我只是要堅持整數。

回答

0

我不知道你在這裏問什麼。你能具體嗎?如果問題是如何生成輸入來排序,那麼你肯定可以使用隨機化。如果你正在尋找一個排序的好地方,我建議Cormen的算法介紹。

0

https://www.topcoder.com/community/data-science/data-science-tutorials/sorting/

我喜歡用上述TopCoder公司聯繫,以排序的參考。他們擁有所需的算法,並且免費提供。你不應該需要使用教科書。

至於數據輸入,測試用例可以通過hackerrank得到,如另一個答案中所述,或者你可以編寫一個函數來隨機生成數字。

例如,如果您使用的是Java,您可以使用隨機:

import java.util.Random; 

public static int randInt(int min, int max) { 

    Random randNum; 
    int randomNum = randNum.nextInt((max - min) + 1) + min; 

    return randomNum; 
} 

然後,您可以使用這樣的函數,以每次生成您的隨機數一個在循環中放入數組排序。

例如:

int toSort = 1000; 
int[] arrayToSort = new int[toSort]; 

for(int numsToSort = toSort; numsToSort > 0; numsToSort--){ 
    arrayToSort[numsToSort] = randInt(0, 100); 
} 

在這裏,我產生0和100

+0

如果您有任何問題發表意見,我會很樂意幫助或在我的回答對擴大 – LucyMarieJ

0

之間的1000項陣列隨機整數確定好,我也許應該研究一些更前發佈,因爲它事實上有一個現成的方法用於在c#框架中生成隨機數。因此,它只是簡單地創建一個具有X個空格的數組,並運行一個循環X次,以將隨機數插入該數組索引。

現在我必須弄清楚如何編寫比較