真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java如何實(shí)現(xiàn)常用排序

這篇文章將為大家詳細(xì)講解有關(guān)Java如何實(shí)現(xiàn)常用排序,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)義馬,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

1.選擇排序

選擇排序的基本思想是遍歷數(shù)組的過程中,以i代表當(dāng)前需要排序的序號(hào),則需要在剩余的[i…n-1]中找出其中的最小值,然后將找到的最小值與i指向的值進(jìn)行交換。因?yàn)槊恳惶舜_定元素的過程中都會(huì)有一個(gè)選擇最大值的子流程,所以人們形象地稱之為選擇排序。

舉個(gè)實(shí)例來看看:

初始:[38,17,16,16,7,31,39,32,2,11]   i=0:[2,17,16,16,7,31,39,32,38,11](0th[38]<->8th[2])   i=1:[2,7,16,16,17,31,39,32,38,11](1st[38]<->4th[17])   i=2:[2,7,11,16,17,31,39,32,38,16](2nd[11]<->9th[16])   i=3:[2,7,11,16,17,31,39,32,38,16](無需交換)   i=4:[2,7,11,16,16,31,39,32,38,17](4th[17]<->9th[16])   i=5:[2,7,11,16,16,17,39,32,38,31](5th[31]<->9th[17])   i=6:[2,7,11,16,16,17,31,32,38,39](6th[39]<->9th[31])   i=7:[2,7,11,16,16,17,31,32,38,39](無需交換)   i=8:[2,7,11,16,16,17,31,32,38,39](無需交換)   i=9:[2,7,11,16,16,17,31,32,38,39](無需交換)

由例子可以看出,選擇排序隨著排序的進(jìn)行(i逐漸增大),比較的次數(shù)會(huì)越來越少,但是不論數(shù)組初始是否有序,選擇排序都會(huì)從i至數(shù)組末尾進(jìn)行一次選擇比較,所以給定長度的數(shù)組,選擇排序的比較次數(shù)是固定的:1+2+3+….+n=n*(n+1)/2,而交換的次數(shù)則跟初始數(shù)組的順序有關(guān),如果初始數(shù)組順序?yàn)殡S機(jī),則在最壞情況下,數(shù)組元素將會(huì)交換n次,最好的情況下則可能0次(數(shù)組本身即為有序)。

由此可以推出,選擇排序的時(shí)間復(fù)雜度和空間復(fù)雜度分別為O(n2)和O(1)(選擇排序只需要一個(gè)額外空間用于數(shù)組元素交換)。

實(shí)現(xiàn)代碼:

/**   *SelectionSorting   */   SELECTION(newSortable(){   public>voidsort(T[]array,booleanascend){   intlen=array.length;   for(inti=0;i

2.插入排序

插入排序的基本思想是在遍歷數(shù)組的過程中,假設(shè)在序號(hào)i之前的元素即[0..i-1]都已經(jīng)排好序,本趟需要找到i對(duì)應(yīng)的元素x的正確位置k,并且在尋找這個(gè)位置k的過程中逐個(gè)將比較過的元素往后移一位,為元素x“騰位置”,最后將k對(duì)應(yīng)的元素值賦為x,插入排序也是根據(jù)排序的特性來命名的。

以下是一個(gè)實(shí)例,紅色標(biāo)記的數(shù)字為插入的數(shù)字,被劃掉的數(shù)字是未參與此次排序的元素,紅色標(biāo)記的數(shù)字與被劃掉數(shù)字之間的元素為逐個(gè)向后移動(dòng)的元素,比如第二趟參與排序的元素為[11,31,12],需要插入的元素為12,但是12當(dāng)前并沒有處于正確的位置,于是我們需要依次與前面的元素31、11做比較,一邊比較一邊移動(dòng)比較過的元素,直到找到第一個(gè)比12小的元素11時(shí)停止比較,此時(shí)31對(duì)應(yīng)的索引1則是12需要插入的位置。

關(guān)于“Java如何實(shí)現(xiàn)常用排序”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


當(dāng)前標(biāo)題:Java如何實(shí)現(xiàn)常用排序
文章位置:http://weahome.cn/article/jdieei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部