**: 1//2algorithm4//
5//created by 張 漢國 on 11-9-30.6//
7//89
#import
1011
@inte***ce sort : nsobject
1415
//選擇排序
16-(void)selectsortwitharray:(nsarray *)adata;
17//
插入排序
18-(void)insertsortwitharray:(nsarray *)adata;
19//
快速排序
20-(void)quicksortwitharray:(nsarray *)adata;
2122 -(void)swapwithdata:(nsmutablearray *)adata index1:(nsinteger)index1 index2:(nsinteger)index2;
2324
25@end
1//2測試例子:algorithm4//
5//created by 張 漢國 on 11-9-30.6//
7//89
#import
"sort.h"10
11@inte***ce sort()
12 -(void)quicksortwitharray:(nsarray *)adata left:(nsinteger)left right:(nsinteger)right;
13@end
1415
@implementation sort
1617 - (id)init
18 23
24return self;
25 }
2627 -(void)selectsortwitharray:(nsarray *)adata
35 }
36if (m != i)
39 }
40 nslog(@"
選擇排序後的結果:%@
",[data description]);
41 [data release];
42 }
4344 -(void)insertsortwitharray:(nsarray *)adata
53 [data replaceobjectatindex:j+1 withobject:tmp];
54 }
55 nslog(@"
插入排序後的結果:%@
",[data description]);
56 [data release];
57 }
5859 -(void)quicksortwitharray:(nsarray *)adata
6667 -(void)quicksortwitharray:(nsmutablearray *)adata left:(nsinteger)left right:(nsinteger)right
77 [self swapwithdata:adata index1:i index2:j];
78 }
79 [self swapwithdata:adata index1:left index2:j];
80 [self quicksortwitharray:adata left:left right:j-1];
81 [self quicksortwitharray:adata left:j+1 right:right];
82 }
83 }
8485
86 -(void)dealloc
8990 -(void)swapwithdata:(nsmutablearray *)adata index1:(nsinteger)index1 index2:(nsinteger)index2
9596
@end
1//2algorithm4//
5//created by 張 漢國 on 11-9-30.6//
7//89
#import
10#import
"sort.h"11
12#define ksize 20
13#define kmax 100
1415
int main (int argc, const
char * argv)
16 31
32 nslog(@"
排序前的資料:%@
",[data description]);
3334 sort *sort = [[sort alloc] init];
35 [sort selectsortwitharray:data];
36 [sort insertsortwitharray:data];
37 [sort quicksortwitharray:data];
38 [sort release];
39 [data release];
40 [pool drain];
41return
0;42 }
常見排序演算法
一.選擇排序 1.概念 每次從無序的子陣列裡面選擇最小的數,放在有序區的後面 既與無序區的首元素交換 不穩定排序 時間複雜度o n 2 輔助儲存o 1 2.實現 int selection sort int a,int len len為陣列元素個數 二.氣泡排序 1.概念 重複訪問數列n 1次,每次...
常見排序演算法
1 插入排序 直接插入排序,是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。初始 38 65 27 76 13 i 1 13 選13為監視哨並假設為乙個有序序列 i 2 13 38 待插入元素38 13 i 3 13 38 65 待插入...
常見排序演算法
排序演算法作為常用的基本演算法,今天就來總結一下各種經典排序演算法,這裡只貼出 對演算法的文字描述可以在課本或其它部落格上找到很多詳盡的敘述,這裡直接上 而不是常見演算法書上的偽 希望對正在努力學資料結構與演算法的朋友們有幫助 1 氣泡排序 void bubblesort t a,int n if ...