一道3G门户的面试题 (Java)
Java代碼如下:?
| package?org.lxh.demo16.common;
import?java.util.Random;
/** ?*?implement?file:?Tfrk.java ?*?desc:?給一個大小為100的(整型)數(shù)組,分配0-1000的隨機數(shù)100個, ?*?但這100個數(shù)不能重復(fù),然后把它從小到大排序,并輸出來。(時間10分鐘) ?*?@author?hemmingway?<hemmingway@163.com> ?* ?*/ public?class?Tfrk?{
/** ?*?@param?args ?*/ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub
//采用插入排序法,?產(chǎn)生一個隨機數(shù)就插入,插入的過程排除重復(fù)數(shù)字的插入即可 Random?random?=?new?Random(); int[]?arrayList?=?new?int[101]; int?len;??//動態(tài)記錄已分配的數(shù)組長度 int?j;
//initialization arrayList[0]?=?Math.abs(random.nextInt()?%?1000); len?=?1; while(true){ int?num=?Math.abs(random.nextInt()?%?1000);? for(j?=?len-1;?j?>?-1?&&?num?<?arrayList[j];?j--)?;
//檢查重復(fù)的數(shù)字 if(?(j?==?-1?)?||?(?j?>?-1?&&?num?>?arrayList[j])?){ for(int?tmp?=?len-1;?tmp?>?j;?tmp--?){ arrayList[tmp+1]?=?arrayList[tmp]; } arrayList[j?+?1]?=?num; ????len++; } ????? //隨機分配100個后,就跳出,不再分配 ????if?(len?>?99)?break; }?//?end?while(true) ?????? //打印輸出 for?(int?i?=?0;?i?<?100;?i++){ ???System.out.println(?"arrayList["?+?i?+?"]:?"?+?arrayList[i]); ?} } }
|
C語言代碼
| //?Test_rnd.cpp?:?定義控制臺應(yīng)用程序的入口點。 // #include?"stdafx.h" #include?<stdio.h> #include?<time.h> #include?<stdlib.h> int?main(int?argc,?char*?argv[]) { int?arrayList[100];? int?len;?? //動態(tài)記錄已分配的數(shù)組長度 int?j; srand((unsigned)time(NULL)); //initialization memset(arrayList,?0,?sizeof(arrayList)/sizeof(arrayList[0])); arrayList[0]?=?rand()?%?1000; len?=?1; while(true) { int?num=?rand()?%?1000;? for(j?=?len-1;?j?>?-1?&&?num?<?arrayList[j];?j--)?; //檢查重復(fù)的數(shù)字 if(?(j?==?-1?)?||?(?j?>?-1?&&?num?>?arrayList[j])?){ for(int?tmp?=?len-1;?tmp?>?j;?tmp--?){ arrayList[tmp+1]?=?arrayList[tmp]; } arrayList[j?+?1]?=?num; len++; } //隨機分配個后,就跳出,不再分配 if?(len?>?99)? break; }?//?end?while(true) for?(int?i?=?0;?i<100;?i++) { printf("arrayList[%d]:?%d\n",i,arrayList[i]); } return?0; } |
總結(jié)
以上是生活随笔為你收集整理的一道3G门户的面试题 (Java)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯提前退租朗科大厦是因为租不起了?官方
- 下一篇: 乱七八糟的备份