給乙個大小為100的(整型)陣列,分配0-1000的隨機數100個,但這100個數不能重複,然後把它從小到大排序,並輸出來。(時間10分鐘)
我把它變了一下陣列大小為101,感覺效率比較高。演算法如下:
//採用插入排序法,產生乙個隨機數就插入,在排序的過程中也就是排出重複的過程;
//比先分配好100個數,這個過程中要比較是否重複,然後再排序,效率要高。
random r = new random();
int list = new int[101]; //多分配乙個,有利於採用插入法
int len = 1; //動態記錄已分配的陣列長度
list[1] = r.next(0, 1000);
int j;
while(true)
else if (num < list[len])
list[j + 1] = list[0];
len++; //記錄分配的個數}}
//隨機分配100個後,就跳出,不再分配
if (len > 99)
break;
}//列印輸出
for (int i = 1; i < 101; i++)
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...
一道面試題
前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...
一道面試題
如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...