我決定試着設計一些排序算法,看看像氣泡排序,看看我能否快速排序工作,但我面臨的第一個問題是我應該如何存儲和解決我的數據?它從哪裏來?排序練習,從哪裏開始?
我是否應該聲明一個包含幾千個索引字段的數組,並手動輸入並隨機化我的數據?或者我應該創建一個堆棧?
我該如何去獲得這些隨機數字?當然,我不一定要生成數以千計的手工輸入。
爲了簡單起見,我想我只是要堅持整數。
我決定試着設計一些排序算法,看看像氣泡排序,看看我能否快速排序工作,但我面臨的第一個問題是我應該如何存儲和解決我的數據?它從哪裏來?排序練習,從哪裏開始?
我是否應該聲明一個包含幾千個索引字段的數組,並手動輸入並隨機化我的數據?或者我應該創建一個堆棧?
我該如何去獲得這些隨機數字?當然,我不一定要生成數以千計的手工輸入。
爲了簡單起見,我想我只是要堅持整數。
我不知道你在這裏問什麼。你能具體嗎?如果問題是如何生成輸入來排序,那麼你肯定可以使用隨機化。如果你正在尋找一個排序的好地方,我建議Cormen的算法介紹。
如果您的問題只是獲取測試用例,您可以使用HackerRank編寫算法,並且他們有很多測試用例供您使用。這裏是一個鏈接到他們的所有排序的挑戰:
https://www.hackerrank.com/domains/algorithms/arrays-and-sorting
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
之間的1000項陣列隨機整數確定好,我也許應該研究一些更前發佈,因爲它事實上有一個現成的方法用於在c#框架中生成隨機數。因此,它只是簡單地創建一個具有X個空格的數組,並運行一個循環X次,以將隨機數插入該數組索引。
現在我必須弄清楚如何編寫比較
如果您有任何問題發表意見,我會很樂意幫助或在我的回答對擴大 – LucyMarieJ