黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 六大java語言經典算法

六大java語言經典算法

更新時間:2020-10-10 17:23:00 來源:動力節點 瀏覽5776次

在程序員們進行編程的時候,對各種數據的處理是少不了的,java語言算法在這個時候就十分重要了。數據算法有很多種,也并不區分哪種計算機語言使用,但是有程序員們常用的java語言經典算法,下面就簡單介紹一下六大經典java語言算法。

一、冒泡排序(Bubble Sort)

1、基本思想:兩個數比較大小,較大的數下沉,較小的數冒起來。

2、算法描述:

(1)比較相鄰的元素。如果第一個比第二個大,就交換它們兩個;

(2)對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對,這樣在最后的元素應該會是最大的數;

(3)針對所有的元素重復以上的步驟,除了最后一個;

(4)重復步驟1~3,直到排序完成。

3、代碼實現:

image.png

二、選擇排序(Selection Sort)

1、基本思想:選擇排序(Selection-sort)是一種簡單直觀的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

2、算法描述:(n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。)

(1)初始狀態:無序區為R[1..n],有序區為空;

(2)第i趟排序(i=1,2,3…n-1)開始時,當前有序區和無序區分別為R[1..i-1]和R(i..n)。該趟排序從當前無序區中-選出關鍵字最小的記錄 R[k],將它與無序區的第1個記錄R交換,使R[1..i]和R[i+1..n)分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區;

(3)n-1趟結束,數組有序化了。

3、代碼實現:

image.png

三、插入排序(Insertion Sort)

1、基本思想:在要排序的一組數中,假定前n-1個數已經排好序,現在將第n個數插到前面的有序數列中,使得這n個數也是排好順序的。如此反復循環,直到全部排好順序。

2、算法描述:

(1)從第一個元素開始,該元素可以認為已經被排序;

(2)取出下一個元素,在已經排序的元素序列中從后向前掃描;

(3)如果該元素(已排序)大于新元素,將該元素移到下一位置;

(4)重復步驟3,直到找到已排序的元素小于或者等于新元素的位置;

(5)將新元素插入到該位置后;

(6)重復步驟2~5。

3、代碼實現:

image.png

四、希爾排序(Shell Sort)

1、基本思想:希爾排序也是一種插入排序,它是簡單插入排序經過改進之后的一個更高效的版本,也稱為縮小增量排序,同時該算法是沖破O(n2)的第一批算法之一。它與插入排序的不同之處在于,它會優先比較距離較遠的元素。

2、算法描述:

(1)選擇一個增量序列t1,t2,…,tk,其中ti>tj,tk=1;

(2)按增量序列個數k,對序列進行k 趟排序;

(3)每趟排序,根據對應的增量ti,將待排序列分割成若干長度為m 的子序列,分別對各子表進行直接插入排序。僅增量因子為1 時,整個序列作為一個表來處理,表長度即為整個序列的長度。

3、代碼實現:

image.png

五、歸并排序(Merge Sort)

1、基本思想:歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合并,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合并成一個有序表,稱為2-路歸并。

2、算法描述:

(1)把長度為n的輸入序列分成兩個長度為n/2的子序列;

(2)對這兩個子序列分別采用歸并排序;

(3)將兩個排序好的子序列合并成一個最終的排序序列。

3、代碼實現:

image.png

image.png

六、快速排序(Quick Sort)

1、基本思想(分治):

通過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序。

2、算法描述:快速排序使用分治法來把一個串(list)分為兩個子串(sub-lists)。具體算法描述如下:

(1)從數列中挑出一個元素,稱為“基準”(pivot);

(2)重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的后面(相同的數可以到任一邊)。在這個分區退出之后,該基準就處于數列的中間位置。這個稱為分區(partition)操作;

(3)遞歸地(recursive)把小于基準值元素的子數列和大于基準值元素的子數列排序。

3、代碼實現:

image.png

image.png

上面這六種java經典算法是大家學習java必須要掌握的,也是新手朋友們在java零基礎教程中會學到的內容。希望通過這篇文章對六種java語言經典算法的介紹,可以幫助到大家,尤其是對新手朋友能夠有所幫助,對常用的java算法有一定的認識和了解。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 精品亚洲成a人片在线观看 精品亚洲成a人在线播放 | 国内偷自视频区视频综合 | 日韩国产午夜一区二区三区 | 国产 日韩 欧美 高清 | 一级片免费在线观看 | 免费看一级片 | 欧美国产日韩久久久 | 日批免费视频不要会员 | 欧美三级不卡在线观看视频 | 看片久久| 精品亚洲成a人在线观看 | 色黄网站成年女人色毛片 | 污宅男666在线永久免费观看 | 欧美日韩一区二区在线观看视频 | 国产成人综合在线视频 | 成年轻人网站色 免费看 | 国产精品国产三级在线高清观看 | 国产真实乱freesex | 欧美一区二区久久精品 | 999国内精品视频免费 | 日本黄色影院在线观看 | 天堂伊人| a视频在线观看免费 | 10周岁女全身裸无打码免费 | 亚洲精品成人图区 | 亚洲激情久久 | 波多野结衣一区在线观看 | 看黄色一级视频 | 国产欧美日韩精品专区 | 亚洲欧洲日本精品 | 国产三级黄色片 | 韩国 欧美 日产 国产精品 | 亚洲αv| 日韩欧美一区二区三区在线 | 国产欧美成人免费观看 | 日批视频免费在线观看 | 视频成人永久免费视频 | 狠狠插网站 | 婷婷夜夜躁天天躁人人躁 | 欧美一级片a| 97色在线观看免费视频 |