今天無意看到以前寫過的排序演算法,順便又想到隨機產生不重複數字的這樣乙個要求的demo(經常看到這樣一道題目:產生乙個int陣列,長度為100,並向其中隨機插入1-100,並且不能重複。),於是乎就寫了乙個,不借助於任何集合類,其思想無非就是排序演算法的逆向操作。另外順便把排序演算法也貼上出來。
class program//int array = getrandomnum(100, 1000);
//foreach (int item in array)
////
console.writeline("排序後");
//array = sortshell(array);
//foreach (int item in array)
// console.readline();
}///
///隨機獲取數字
//////
獲取到的數字的個數
///獲取的數字的最大值
///static
int getrandomnum(int count, int max)
return array;
}///
///隨機產生不重複數字
//////
//////
static
int randomnotrepeatnum(int max, int min)
random random = new random();
for (int i = 0; i < count; i++)
return array;
}///
///氣泡排序:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。程式設計複雜度低,穩定性。
//////
///static
int sortbubble(int sortarray)
int i, j = 1, temp;
bool done = false;
while (!done && j < sortarray.length)
}j++;
}return sortarray;
}///
///選擇排序:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,
///然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。
///以此類推,直到所有元素均排序完畢
//////
///static
int sortselection(int sortarray)
int i, j = 0, min, temp;
while (j < sortarray.length - 1)
}temp = sortarray[min];
sortarray[min] = sortarray[j];
sortarray[j] = temp;
j++;
}return sortarray;
}///
///插入排序:每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,
///直到全部記錄插入完成為止。
//////
///static
int sortinsert(int sortarray)
int i, j, temp;
for (i = 1; i < sortarray.length; i++)
sortarray[j] = temp;
}return sortarray;
}///
///希爾排序:將陣列列在乙個表中並對列排序(用插入排序)。
///重複這過程,不過每次用更長的列來進行。
///最後整個表就只有一列了,最後再進行插入排序。
//////
///static
int sortshell(int sortarray)
int inc;
for (inc = 1; inc <= sortarray.length / 9; inc = 3 * inc + 1) ;
for (; inc > 0; inc /= 3)
sortarray[j - 1] = t;}}
return sortarray;
}}
C 產生不重複的隨機數
方法1 思想是用乙個陣列來儲存索引號,先隨機生成乙個陣列位置,然後把這個位置的索引號取出來,並把最後乙個索引號複製到當前的陣列位置,然後使隨機數的上限減一,具體如 先把這100個數放在乙個陣列內,每次隨機取乙個位置 第一次是1 100,第二次是1 99,將該位置的數用最後的數代替。int index...
關於產生不重複隨機數的演算法
來自 方法1 去重法 這是最容易想到的方法,逐個產生這些隨機數,每產生乙個,都跟前面的隨機數比較,如果重複,就重新產生。這種方法效率比較低,且比較次數呈線性增長,越往後次數越多。方法2 篩選法 所謂 篩選法 就是根據要產生隨機數指定的範圍 起始數必須小於終止數 將這些數全部裝入乙個陣列,然後利用系統...
高效產生不重複的隨機數
purpose 生成隨機的不重複的測試資料 1000w資料量,要保證生成不重複的資料量,一般的程式沒有做到。但,本程式做到了。include include include include include include define size 10000000 int num size void ...