快速排序/二分插入排序的swift以及Java實(shí)現(xiàn)

原文鏈接:http://blog.csdn.net/mumubumaopao/article/details/51931434

經(jīng)常會(huì)用到排序的算法,比如:冒泡法,選擇法,快速排序,二分插入排序等等.前面兩個(gè)就不說(shuō)了,貼出來(lái)自己寫(xiě)的快速排序和二分插入排序的SwiftJava的代碼實(shí)現(xiàn),喜歡的話control+C拿去用.

swift實(shí)現(xiàn)快速排序和二分插入排序算法:

(想運(yùn)行的話,直接復(fù)制代碼,替換掉控制器里的viewDidLoad方法就好了)

overridefuncviewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

vararray :Array = [2,1,3,5,4,6,8,7,9,10]

//quickSort(&array, left: 0, right: 9)

binarySort(&array)

foriin0... array.count-1{

print(array[i])

}

}

//快速排序

funcquickSort(inoutarray:Array,left:Int,right:Int){

ifleft > right {

return

}

varbase,temp,i,j:Int

i = left

j = right

base = array[left]

whilei < j {

whilearray[j] >= base && i < j {

j -=1

}

whilearray[i] <= base && i < j {

i +=1

}

ifi < j {

temp = array[i]

array[i] = array[j]

array[j] = temp

}

}

array[left] = array[i]

array[i] = base

quickSort(&array, left: left, right: i -1)

quickSort(&array, left: i +1, right: right)

}

//二分插入法排序

funcbinarySort(inoutarray :Array){

varlow,mid,high,base :Int

foriin1... array.count-1{

low =0

high = i -1

base = array[i]

whilelow <= high {

mid = (low + high)/2

ifarray[mid] >= base{

low = mid +1

}elseifarray[mid] <= base{

high = mid -1

}

}

forvarj = i -1; j >= high +1; j -=1{

array[j +1] = array[j]

}

array[high +1] = base;

}

}

Java實(shí)現(xiàn)快速排序:

直接貼出來(lái)整個(gè)類了,畢竟不長(zhǎng),創(chuàng)建新文件把所有代碼拷進(jìn)去就可以運(yùn)行了.

publicclassSort{

publicstaticvoidquickSort(int[] array,intleft,intright){

if(left > right){

return;

}

intbase,temp,i,j;

i = left;

j = right;

base = array[left];

while(i < j){

while(array[j] <= base && i < j){

j --;

}

while(array[i] >= base && i < j){

i ++;

}

if(i < j){

temp = array[i];

array[i] = array[j];

array[j] = temp;

}

}

array[left] = array[i];

array[i] = base;

quickSort(array,left,i-1);

quickSort(array,i +1,right);

}

publicstaticvoidmain(String[] args){

int[] array =newint[]{2,1,4,3,6,5,8,7,9,10};

quickSort(array,0,9);

for(inti =0; i <10; i ++){

System.out.println(array[i]);

}

}

}

Java實(shí)現(xiàn)二分插入法排序:

publicclassBinarySort{

publicstaticvoidmain(String[] args){

int[] array =newint[]{2,3,1,4,6,5,8,7,9,10};

binarySort(array);

for(intnumebr : array){

System.out.println(numebr);

}

}

publicstaticvoidbinarySort(int[] array){

intlow,mid,high,base;

for(inti =1; i < array.length ; i++){

low =0;

high = i -1;

base = array[i];

while(low <= high){

mid = (low + high) /2;

if(array[mid] > base){

low = mid +1;

}elseif(array[mid] < base){

high = mid -1;

}

}

for(intj = i -1; j >= high +1; j -=1){

array[j +1] = array[j];

}

array[high +1] = base;

}

}

}

以上就是使用swift和Java實(shí)現(xiàn)的快速排序算法和二分插入算法的實(shí)現(xiàn)及測(cè)試用例.不足之處,歡迎指正.

加入審核被拒交流群笛丙,一起交流審核上架經(jīng)驗(yàn)吧~~ 群號(hào):689757099

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溪厘,一起剝皮案震驚了整個(gè)濱河市嗅骄,隨后出現(xiàn)的幾起案子梭稚,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丽旅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡纺棺,警方通過(guò)查閱死者的電腦和手機(jī)榄笙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)祷蝌,“玉大人茅撞,你說(shuō)我怎么就攤上這事【揠” “怎么了米丘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)糊啡。 經(jīng)常有香客問(wèn)我拄查,道長(zhǎng),這世上最難降的妖魔是什么棚蓄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任堕扶,我火速辦了婚禮,結(jié)果婚禮上癣疟,老公的妹妹穿的比我還像新娘挣柬。我一直安慰自己,他們只是感情好睛挚,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著急黎,像睡著了一般扎狱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勃教,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天淤击,我揣著相機(jī)與錄音,去河邊找鬼故源。 笑死污抬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播印机,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼矢腻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了射赛?” 一聲冷哼從身側(cè)響起多柑,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楣责,沒(méi)想到半個(gè)月后竣灌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秆麸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年初嘹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沮趣。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡削樊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兔毒,到底是詐尸還是另有隱情漫贞,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布育叁,位于F島的核電站迅脐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏豪嗽。R本人自食惡果不足惜谴蔑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龟梦。 院中可真熱鬧隐锭,春花似錦、人聲如沸计贰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)躁倒。三九已至荞怒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秧秉,已是汗流浹背褐桌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留象迎,地道東北人荧嵌。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親啦撮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谭网,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容