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

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

六大java語言經(jīng)典算法

更新時間:2020-10-10 17:23:00 來源:動力節(jié)點 瀏覽5816次

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

一、冒泡排序(Bubble Sort)

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

2、算法描述:

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

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

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

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

3、代碼實現(xiàn):

image.png

二、選擇排序(Selection Sort)

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

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

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

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

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

3、代碼實現(xiàn):

image.png

三、插入排序(Insertion Sort)

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

2、算法描述:

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

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

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

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

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

(6)重復步驟2~5。

3、代碼實現(xiàn):

image.png

四、希爾排序(Shell Sort)

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

2、算法描述:

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

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

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

3、代碼實現(xiàn):

image.png

五、歸并排序(Merge Sort)

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

2、算法描述:

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

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

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

3、代碼實現(xiàn):

image.png

image.png

六、快速排序(Quick Sort)

1、基本思想(分治):

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

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

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

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

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

3、代碼實現(xiàn):

image.png

image.png

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久国产大片 | 日韩在线观看一区二区三区 | 青青国产成人久久激情911 | 男女羞羞视频免费观看 | 久久综合性 | 一级片影院 | 欧美高清性粉嫩交 | 亚洲精品一区二区久久久久 | 成人精品视频一区二区三区 | 澳门四虎影院 | 欧美成人性videos | 伊人网99 | 亚洲欧美一区二区三区在线播放 | 亚洲阿v天堂在线观看2017 | 国产二区精品视频 | 夜色私人影院永久入口 | 亚洲一片 | 九九热中文字幕 | 伊人77| 久久久久久午夜精品 | 日韩51| 99视频国产精品 | 中文字幕高清免费不卡视频 | 亚洲精品一级一区二区三区 | 欧美高清在线视频在线99精品 | 波多野结衣中文字幕一区二区 | 国产精品久久99 | 国产综合成人久久大片91 | 中文字幕在线一区 | 4hu影院永久在线播放 | 伊人狼人久久 | 天天干天天在线 | 欧美日韩亚洲精品国产色 | 国产尤物在线播放 | 91亚洲视频在线观看 | 国产在线精品一区免费香蕉 | 亚洲欧美另类在线视频 | a成人毛片免费观看 | 桃花阁成人网在线观看 | 99视频在线免费观看 | 久青草视频在线播放 |