Objective-C實現冒泡,選擇,插入,快速排序演算法__演算法

來源:互聯網
上載者:User
首先是header檔案: 
Objective-c代碼   #import <Foundation/Foundation.h>      @interface Sort : NSObject{          }   //冒泡排序   -(void)bunbleSortWithArray:(NSArray *)aData;   //選擇排序   -(void)selectSortWithArray:(NSArray *)aData;   //插入排序   -(void)insertSortWithArray:(NSArray *)aData;   //快速排序,對冒泡排序的一種改進   -(void)quickSortWithArray:(NSArray *)aData;   -(void)swapWithData:(NSMutableArray *)aData index1:(NSInteger)index1 index2:(NSInteger)index2;   @end  
接著是實現: 
Objective-c代碼   #import "Sort.h"      @interface Sort()   -(void)quickSortWithArray:(NSArray *)aData left:(NSInteger)left right:(NSInteger)right;   @end      @implementation Sort      - (id)init   {       self = [super init];       if (self) {           // Initialization code here.       }              return self;   }      -(void)bunbleSortWithArray:(NSArray *)aData{       NSMutableArray *data = [[NSMutableArray alloc]initWithArray:aData];       for (int i=0; i<[data count]-1; i++) {           for (int j =0; j<[data count]-1-i; j++) {               if ([data objectAtIndex:j] > [data objectAtIndex:j+1]) {                   [self swapWithData:data index1:j index2:j+1];               }           }       }       NSLog(@"冒泡排序後的結果:%@",[data description]);   }      -(void)selectSortWithArray:(NSArray *)aData{       NSMutableArray *data = [[NSMutableArray alloc]initWithArray:aData];       for (int i=0; i<[data count]-1; i++) {           int m =i;           for (int j =i+1; j<[data count]; j++) {               if ([data objectAtIndex:j] < [data objectAtIndex:m]) {                   m = j;               }           }           if (m != i) {               [self swapWithData:data index1:m index2:i];           }       }       NSLog(@"選擇排序後的結果:%@",[data description]);   }      -(void)insertSortWithArray:(NSArray *)aData{       NSMutableArray *data = [[NSMutableArray alloc]initWithArray:aData];       for (int i = 1; i < [data count]; i++) {           id tmp = [data objectAtIndex:i];           int j = i-1;           while (j != -1 && [data objectAtIndex:j] > tmp) {               [data replaceObjectAtIndex:j+1 withObject:[data objectAtIndex:j]];               j--;           }           [data replaceObjectAtIndex:j+1 withObject:tmp];       }       NSLog(@"插入排序後的結果:%@",[data description]);   }      -(void)quickSortWithArray:(NSArray *)aData{       NSMutableArray *data = [[NSMutableArray alloc] initWithArray:aData];       [self quickSortWithArray:data left:0 right:[aData count]-1];       NSLog(@"快速排序後的結果:%@",[data description]);          }      -(void)quickSortWithArray:(NSMutableArray *)aData left:(NSInteger)left right:(NSInteger)right{       if (right > left) {           NSInteger i = left;           NSInteger j = right + 1;           while (true) {               while (i+1 < [aData count] && [aData objectAtIndex:++i] < [aData objectAtI

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.