大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

六大java語言經典算法

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

在程序員們進行編程的時候,對各種數據的處理是少不了的,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算法有一定的認識和了解。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品探花一区在线观看 | 国产精品综合久成人 | 美国免费三片在线观看 | 国产亚洲精aa在线观看不卡 | 国产色婷婷精品综合在线手机播放 | 亚洲专区一路线二 | 国产最新精品精品视频 | 在线观看国产区 | 国产日韩欧美精品一区二区三区 | 久久婷婷成人综合色 | 国产午夜亚洲精品久久www | 高清亚洲综合色成在线播放放 | 91成人精品 | 福利在线影院 | 欧洲在线免费视频 | 久一视频在线观看 | 亚洲香蕉在线观看 | 免费视频99 | 国产精品久久久 | 亚洲性视频网站 | 日日摸夜夜爽久久综合 | 夜夜爽夜夜 | 国产成人三级 | 91久久夜色精品国产网站 | 精品亚洲综合久久中文字幕 | 一区二区精品在线观看 | jiucao在线观看精品 | 国产一区二区三区在线观看视频 | 波多野结衣久久一区二区 | 国产小视频在线观看免费 | 涩综合| 丁香狠狠色婷婷久久综合 | 日韩夜夜操| 成人短视频在线观看 | 一个色综合网 | 欧美一区高清 | 亚洲精品久久国产小说 | 欧美日韩成人在线观看 | 日韩www| 日韩欧美毛片免费观看视频 | 天堂成人在线视频 |