- N +

java快速排序?十大排序算法java

各位老鐵們好,相信很多人對java快速排序都不是特別的了解,因此呢,今天就來為大家分享下關于java快速排序以及十大排序算法java的問題知識,還望可以幫助大家,解決大家的一些困惑,下面一起來看看吧!

編寫java程序實現:輸入一組整數存放在數組中,比較并輸出其中的最大值和最小值:再將數組元素從小到大排序

代碼如下

publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("請輸入元素個數:");intn=Integer.parseInt(sc.nextLine());int[]scores=newint[n];for(inti=0;i<n;i++){System.out.println("請輸入整數:");scores[i]=Integer.parseInt(sc.nextLine());;}Arrays.sort(scores);//從小到大排序for(inti=0;i<n;i++){System.out.println(scores[i]);}System.out.println("最小值:"+scores[0]);System.out.println("最大值:"+scores[n-1]);}

java學習路徑是怎樣的

以前在如鵬網上學習Java的時候的課程體系,可以參考一下;

第一部分:java語言入門階段

第二部分:java語言高級階段

第三部分:Web前端

第四部分:javaweb編程(核心階段)

第五部分:SSM框架和SSH框架

第六部分:項目階段

第七部分:企業專題

以及后面的從簡歷,模擬面試,就業進行全方位的指導,挺不錯的,有網絡的地方就可以學習,在家里,在宿舍都可以學習,隨時隨地學編程,可以根據自己的時間來靈活安排學習進度,把空余時間充分的利用起來,對于咱們編程的人來說,練習是很有必要的,有更多的時間來練習,掌握的更好,有問題隨時提問,老師實時在線答疑,有技術大牛親自授課,口碑不錯,基本上都是慕名而去的,更多詳情可以到如鵬網官網上去了解一下;

java中的冒泡排序

publicvoidbubbleSort(int[]data,StringsortType){

if(sortType.equals("asc")){//正排序,從小排到大

//比較的輪數

for(inti=1;i<data.length;i++){

//將相鄰兩個數進行比較,較大的數往后冒泡

for(intj=0;j<

data.length

-i;j++){

if(data[j]>data[j+1]){

//交換相鄰兩個數

swap(data,j,j+1);

}

}

}

}elseif(sortType.equals("desc")){//倒排序,從大排到小

//比較的輪數

for(inti=1;i<data.length;i++){

//將相鄰兩個數進行比較,較大的數往后冒泡

for(intj=0;j<

data.length

-i;j++){

if(data[j]<data[j+1]){

//交換相鄰兩個數

swap(data,j,j+1);

}

}

}

}else{

System.out.println("您輸入的排序類型錯誤!");

}

printArray(data);//輸出冒泡排序后的數組值

}

如何成為高級Java工程師

宏觀方面

一、JAVA。要想成為JAVA(高級)工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成為JAVA(高級)工程師,您要對JAVA做比較深入的研究。您應該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發現其實您想實現的很多功能,通過JAVA的API都可以實現了,就不必自己費太多的腦經了。

二、設計模式。其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代碼往往要借助一些設計模式。當然長期的代碼經驗積累,只要您用心,會使您形成自己代碼風格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。但既然前人已經給我們總結出了經驗,我們何不踩著前人的肩膀前進?

三、XML。現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數據轉換、做系統的配置、甚至可保存您的系統業務數據。因此您必須了解XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的項目中,XML往往擔當系統配置信息的作用,您需要用這些API解析這些配置信息,開發完美的項目。

四、精通使用一種或兩種框架。像在《如何成為java初級程序員》中提到的那樣,“框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基于框架的開發使你可以省出很多的開發成本”。但我這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發一個項目時思路會開闊一些,比如您會想到把SQL語句與您的JAVA代碼分開,再比如您會考慮把您的業務邏輯配置到XML或者數據庫中,這樣整個項目就很容易擴張了。

五、熟悉主流數據庫。其實真正比較大的項目都是有人專門做數據庫的,但往往很多項目要求作為(高級)工程師的您也參與數據庫的設計以及SQL的編寫。所以為了更好的為國家做貢獻,建議您還是多了解一些主流數據庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發器。如果您不是“科班”出身,您還需要補充一些數據庫原理方面的知識。

六、精通一種或兩種WEBServer。盡管我再《如何成為java初級程序員》里講過它,我還是要強調您要精通一種或兩種。因為作為JAVA工程師,特別時想成為高級JAVA工程師的您,您不可避免地要部署您的項目到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它的資源,這往往可以節省很多時間和精力。

七、UML。我知道您肯定想成為高級工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級工程師和項目經理。在比較正規的開發團隊中,UML是討論項目的交流工具,您要想做一個軟件工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,盡管這不是必須,但卻很重要。

八、站在高度分析問題:這不是一個知識點,也不是通過書本就能學得到的。只所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高級的軟件工程師,而不是一個一般的軟件工程師。希望您在工作中多向您的系統分析員、需求分析員、系統設計員學習,多站在他們角度上去看您在開發的項目。在最好在項目之初先在您的腦海里對項目有個大致的分析、設計,然后和他們進行比較,找找差別,想想缺點。

九、工具。與在《如何成為java初級程序員》里提到的不同,您在這個階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對ROSE,Together要多了解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鐘了,那些JSP頁面讓初級程序員去寫吧

微觀方面

1.CoreJava部分

這是最基礎的,對于一個java高級開發/設計人員,你需要對這一部分達到精通的水平,重點內容如下:

a.面向對象編程思想(封裝繼承多態接口)

b.字符串處理

c.java.lang包,java.util包等常用包

d.java異常處理

2.Java高級部分

a.JavaI/O流

b.Java多線程技術

c.Java網絡編程

d.JavaSwing

后兩項可以了解即可,如果項目需要可以深入研究

3.前端基本技能

*HTML+CSS網頁開發

*JavaScript

*Jquery

*瀏覽器兼容性CSShack(了解)

4.熟練使用JSP+Servlet進行開發

5.MVC設計模式,原理,以及相關框架,如Struts

6.SSH框架

7.緩存技術session&cookie

8.熟練使用一種以上Java開發工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

9.熟練使用XML

JDOMw3c.domSAX

10.Java設計模式

工廠模式,單例模式==

11.Java反射機制

反射的各種用法

12.了解或熟悉C,C++,.NET

13.熟悉JDK的配置,環境變量

14.數據庫oracle必學,其他最好了解一種以上(mysql,sqlserver,access==)

oracle:視圖,索引,存儲過程,觸發器,游標,包,常用函數==

15.數據庫原理

事務的原理,鎖機制,表連接,復雜查詢語句(工作經驗),性能調優,鎖表以及解決方案==

16.JDBC,連接池

17.Ajax,反向Ajax

18.HTTP協議,request和response的原理,HTTPstatus(了解常用的),Https原理

19.熟悉Linux基本命令,使用過Linux/Unix系統,可以編寫shell腳本,可以在Linux上部署項目

20.了解windows系統批處理腳本bat

21.了解HTML5,最好學習過

22.熟悉一種JS框架,如Prototype

23.J2EE原理熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==

24.熟悉ant或maven

25.熟悉一門腳本語言,如python,ruby

26.了解php/asp

27.了解ftp協議及原理

28.熟練使用Junit測試,熟悉Mockito等測試工具

29,熟悉javac,javadoc,native,native2ascii等常用命令

30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究過一些的算法。

31.了解Flex(不學也沒關系)

32.了解敏捷開發模式

33.工作流workflow至少用過一種,如OSworkflow,了解原理

34.使用過VPN了解其原理

35.熟悉jstl表達式和el表達式

36.熟悉webservice,WSDL,SOAP

37.圖片處理,如圖片上傳,預覽,限制大小等

38.版本控制工具,CVSVSSSVN

39,JSON技術,JSON+AJAX

40.分頁技術,最好自己實現過不僅僅是用過要知道原理

41.JavaMail

42.Java讀寫txt,excel,JXL技術

43.JVM原理,JVM內存管理,GC,Java堆棧池

44.熟練使用下面的工具:

office辦公軟件,word,excel,ppt等

plsql,sqldevelop數據庫開發工具

outlook大公司都用

ue編輯器

瀏覽器控制臺,調試

SHH/PUTTY遠程

45.UML建模工具RationalRose等

46.使用log4j

47.使用過開放Api如百度,騰訊街景,新浪微博等

48.頁面靜態化技術(偽靜態頁面)

49.報表技術,使用過報表制作工具,如水晶易表。

50.定時任務,如Springbatch,學會自定義batch任務(不適用第三方工具)

51.了解uuid

52.b/s和c/s架構

53.正則表達式

54.了解jndijms

55.ERP

56.UNICODE編碼,亂碼解決

57.開源網絡編輯器,如ckEditor

58.二進制原理

59.使用過,了解過開源論壇框架,如discuzz

60.GWT,Closure框架

61.了解大數據,云計算

62.搜索引擎搜索技術

63.軟件工程,項目管理

一道java面試題,20億數字的文本排序,如何取前100

既然是java題,這就是經典的topk問題。先取前100個數,建立一個最小堆,剩下的數依次從堆頂插入元素,同時調整堆。最后堆中的100個元素即為結果。空間復雜度為k,時間復雜度為nlogk

END,本文到此結束,如果可以幫助到大家,還望關注本站哦!

返回列表
上一篇:
下一篇: