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

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

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

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

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

Objective-C示例:

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

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

相關文章

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

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

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

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

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

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

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

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

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

    iOS中排列組合算法的使用小結

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

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

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

    IOS CocoaPods詳細使用方法

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

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

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

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

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

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

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

最新評論

革吉县| 韶关市| 论坛| 海阳市| 高州市| 南溪县| 石嘴山市| 克拉玛依市| 博罗县| 华宁县| 郑州市| 读书| 武宁县| 项城市| 乃东县| 天峨县| 海兴县| 利辛县| 扎赉特旗| 姚安县| 咸丰县| 长阳| 卢龙县| 曲沃县| 洛浦县| 蚌埠市| 嵊州市| 柯坪县| 饶河县| 临猗县| 白沙| 铜陵市| 合作市| 东乡族自治县| 梨树县| 曲阳县| 株洲县| 桂平市| 宾阳县| 芜湖市| 万年县|