最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Objective-C實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單示例

 更新時(shí)間:2016年06月21日 09:55:09   作者:manji  
冒泡排序即是依次比較相鄰的兩個(gè)數(shù),如果后面的數(shù)較小則交換到前面一個(gè)數(shù)的位置上,這里我們來看一下Objective-C實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單示例

簡(jiǎn)介
冒泡算法是一種基礎(chǔ)的排序算法,這種算法會(huì)重復(fù)的比較數(shù)組中相鄰的兩個(gè)元素。如果一個(gè)元素比另一個(gè)元素大(?。?,那么就交換這兩個(gè)元素的位置。重復(fù)這一比較直至最后一個(gè)元素。這一比較會(huì)重復(fù)n-1趟,每一趟比較n-j次,j是已經(jīng)排序好的元素個(gè)數(shù)。每一趟比較都能找出未排序元素中最大或者最小的那個(gè)數(shù)字。這就如同水泡從水底逐個(gè)飄到水面一樣。冒泡排序是一種時(shí)間復(fù)雜度較高,效率較低的排序方法。其空間復(fù)雜度是O(n)。
1, 最差時(shí)間復(fù)雜度 O(n^2)
2, 平均時(shí)間復(fù)雜度 O(n^2)

實(shí)現(xiàn)思路
1,每一趟比較都比較數(shù)組中兩個(gè)相鄰元素的大小
2,如果i元素小于i-1元素,就調(diào)換兩個(gè)元素的位置
3,重復(fù)n-1趟的比較

Objective-C示例:

+(void)bubbleSort:(NSMutableArray *)list{
 if (list.count <= 1) {
  return;
 }
 int i, y;
 BOOL bFinish = YES; //是否發(fā)生數(shù)據(jù)交換
 for (i = 1; i<= [list count] && bFinish; i++) {
  bFinish = NO; //每次遍歷時(shí),重置標(biāo)志
  //從最后一位開始,依次跟前一位相比,如果較小,則交換位置
  //當(dāng)一次遍歷沒有任何數(shù)據(jù)交換時(shí),則說明已經(jīng)排序完成(bFinish=YES),則不再進(jìn)行循環(huán)
  for (y = (int)[list count]-1; y>=i; y--) {
   if ([[list objectAtIndex:y] intValue] < [[list objectAtIndex:y-1] intValue]) {
    //交換位置
//    NSLog(@"%d<->%d",[[array objectAtIndex:y-1] intValue],[[array objectAtIndex:y] intValue]);
    [list exchangeObjectAtIndex:y-1 withObjectAtIndex:y];
    bFinish = YES; //發(fā)生數(shù)據(jù)交換,則繼續(xù)進(jìn)行下一次遍歷,直到未發(fā)生數(shù)據(jù)交換或者循環(huán)完成為止

//    NSLog(@"%@",[array componentsJoinedByString:@" "]);
   }
   
  }
 }
}

相關(guān)文章

  • iOS單例的創(chuàng)建與銷毀示例

    iOS單例的創(chuàng)建與銷毀示例

    本篇文章主要介紹了iOS單例的創(chuàng)建與銷毀示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • iOS開發(fā)之離線地圖核心代碼

    iOS開發(fā)之離線地圖核心代碼

    本文給大家分享ios開發(fā)之離線地圖核心代碼,代碼簡(jiǎn)單易懂,非常實(shí)用,有需要的朋友參考下
    2016-04-04
  • iOS中id類型的理解及底層原理詳解

    iOS中id類型的理解及底層原理詳解

    這篇文章主要給大家介紹了關(guān)于iOS中id類型的理解以及底層原理的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • IOS開發(fā)代碼分享之獲取啟動(dòng)畫面圖片的string

    IOS開發(fā)代碼分享之獲取啟動(dòng)畫面圖片的string

    本文是IOS開發(fā)代碼分享系列的第一篇文章,這里分享下獲取啟動(dòng)畫面圖片的string的代碼,本代碼支持 iPhone 6 以下. 支持 iPhone 及 iPad,非常實(shí)用,希望對(duì)大家有所幫助
    2014-09-09
  • iOS中排列組合算法的使用小結(jié)

    iOS中排列組合算法的使用小結(jié)

    這篇文章主要給大家介紹了關(guān)于iOS中排列組合算法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • iOS如何用100行代碼實(shí)現(xiàn)簡(jiǎn)單的抽屜效果

    iOS如何用100行代碼實(shí)現(xiàn)簡(jiǎn)單的抽屜效果

    最近在網(wǎng)上看到一些抽屜效果,看起來很酷!很眩!但是,下不下來看代碼, 所以決定還是自己寫吧!!這篇文章通過近100行的代碼就實(shí)現(xiàn)了簡(jiǎn)單的抽屜效果,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • IOS CocoaPods詳細(xì)使用方法

    IOS CocoaPods詳細(xì)使用方法

    自從有了CocoaPods以后,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會(huì)為我們做好一切
    2016-09-09
  • iOS直播類APP開發(fā)流程解析

    iOS直播類APP開發(fā)流程解析

    這篇文章主要為大家詳細(xì)解析了iOS直播類APP開發(fā)流程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • iOS?WKWebView秒開方案實(shí)戰(zhàn)記錄

    iOS?WKWebView秒開方案實(shí)戰(zhàn)記錄

    從iOS8開始,就引入了新的瀏覽器控件WKWebView,用于取代UIWebView,下面這篇文章主要給大家介紹了關(guān)于iOS?WKWebView秒開方案的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • iOS 高德地圖仿微信發(fā)送實(shí)時(shí)位置

    iOS 高德地圖仿微信發(fā)送實(shí)時(shí)位置

    這篇文章主要介紹了iOS 高德地圖仿微信發(fā)送實(shí)時(shí)位置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03

最新評(píng)論

万源市| 尉氏县| 通道| 乐业县| 太原市| 沽源县| 加查县| 丹东市| 高平市| 金华市| 新密市| 定远县| 建瓯市| 东平县| 新乡市| 东光县| 宜川县| 铜山县| 威远县| 绥阳县| 都匀市| 岳池县| 横峰县| 晋州市| 旺苍县| 大冶市| 乌拉特前旗| 离岛区| 华宁县| 茌平县| 手机| 马龙县| 平舆县| 普洱| 萍乡市| 文安县| 罗山县| 台南市| 浦东新区| 中宁县| 淮阳县|