如何實現(xiàn)雞尾酒排序算法
在我們做開發(fā)中,不論你采用什么語言做開發(fā)工具,都需要積累,或者掌握一些算法,作為我們解決一些業(yè)務(wù)的手段;其中,在排序的算法,雞尾酒排序作為經(jīng)典算法中的一種,歷來為廣大程序員所喜愛,筆者本人也是受益匪淺
在我們做開發(fā)中,不論你采用什么語言做開發(fā)工具,都需要積累,或者掌握一些算法,作為我們解決一些業(yè)務(wù)的手段;其中,在排序的算法,雞尾酒排序作為經(jīng)典算法中的一種,歷來為廣大程序員所喜愛,筆者本人也是受益匪淺;下面,就通過實例來講解一下,如何實現(xiàn)雞尾酒排序算法。
問題簡介和思路
a)問題:有一長度為n的數(shù)組,我們要把數(shù)組內(nèi)的數(shù)據(jù),按照從小到大的順序排列出來;
b)思路:雞尾酒排序,又稱攪拌排序和漣漪排序,也稱為冒泡派排序,只不過這里是雙向冒泡排序法;其過程是:
i. 先對數(shù)組從左到右進行升序的冒泡排序;
ii. 再對數(shù)組進行從右到左的降序的冒泡排序;
iii. 以此類推,持續(xù)的、依次的改變冒泡的方向,并不斷縮小沒有排序的數(shù)組范圍;
iv. 例如:對數(shù)組內(nèi)的602、544、414、21這幾個成員進行排序,
從左到右:21、602、544、414
從右到左:21、414、602、544
從左到右:21、414、544、602
實例/步驟
a)創(chuàng)建一個控制臺應(yīng)用程序,該程序中首先定義個靜態(tài)的int類型的數(shù)組,用來準備排序的數(shù)組;數(shù)組為:static int[] intArray;
b)定義一個類,這個類是為了對數(shù)組內(nèi)其中的的兩個數(shù)進行交換排序用的;方法名為:change;如下:
c)定義一個方法,這個方法是用來實現(xiàn)雞尾酒排序的方法,這個數(shù)組是一維數(shù)組,,類型為int型,方法名為:CatchSorts;如下:
d)再定義一個方法,用來調(diào)用CatchSorts()對指定的數(shù)組進行雞尾酒排序,該方法中定義個一個一維的int型數(shù)組,用來表示要排序的數(shù)組,方法名為:sort;如下:
e)最后,在Main方法中,我們首先定義一個int類型的數(shù)組,然后調(diào)用sort()來進行排序,最后循環(huán)遍歷出數(shù)組中的每個數(shù)字;如下:
最后的效果如下圖: