82、iOS 基本算法】的更多相关文章

“冒泡排序.选择排序.快速排序.归并排序.逆序.二分查找.求两个整数的最大公约数和最小公倍数.” 一.冒泡排序 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3.针对所有的元素重复以上的步骤,除了最后一个. 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. /** 冒泡排序 */ -(void)bubbleSortWithMutableArray:(NS…
// Playground - noun: a place where people can play import Cocoa var nums = Int[]() ... { nums.append(random()) } nums ////冒泡排序 /* var count = 0; for(var i = 0 ; i < nums.count-1; i++){ for(var j = 0; j < nums.count-i-1;j++){ count++; if(nums[j] >…
1.冒泡排序 冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素,如果一个元素比另一个元素大/小,那么就交换这两个元素的位置.重复一直比较到最后一个元素. 1.最差时间复杂度:O(n^2); 2.平均时间复杂度:O(n^2); /*冒泡排序*/ - (void)bubbleSortWithArray:(NSMutableArray *)array{ for (int i = 0; i < array.count; i++) { for (int j = 0; j<array…
1.插入排序 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 直接插入排序是稳定的.算法时间复杂度O(n2)--[n的平方] main() { int  a[10],j,i,m; for(j=1;j<10;j++) { m=a[j]; for(i=j-1;i>=0;i--) { if(a[i]<m) break; else a[i+1]=a[i]; } a[…
算法步骤: DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位(实际用到了56位,第8.16.24.32.40.48.56.64位是校验位, 使得每个密钥都有奇数个1),其算法主要分为两步: 1)初始置换 其功能是把输入的64位数据块按位重新组合,并把输出分为L0.R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位.L0.R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置…
二分法: 平均时间复杂度:O(log2n) int halfFuntion(int a[], int length, int number)  { int start = 0; int end = length - 1; int index = 0; while(start < end)  { index = start + (end - start)/2 if(a[index] == number){ return index;  } else if(a[index] < number){…
1. 给出一个由小写字母组成的字符串,把所有连续出现的 2 个 a 替换成 bb ( 2 个 b ),但是对于超过两个连续的 a,那么这些字符都不作替换.例如: bad -> bad (一个a,不替换) baad -> bbbd (替换成bb) baaad -> baaad (连续三个a,不替换) apaapaaapaa -> apbbpaaapbb (这里连续的a出现了4次,只有第二段和最后一段被替换) - (NSString *)replace:(NSString *)str…
/** * @brief 冒泡排序法 * * @param arr 需要排序的数组 */ -(void)BubbleSort:(NSMutableArray *)arr { // 取第一个与其邻接的对比,若大则交换 for (int i=0; i<[arr count]; i++) { for (int j= (int)[arr count]-1; j>i; j--) { int temp1 = [[arr objectAtIndex:j]intValue]; int temp2 = [[ar…
- (void)viewDidLoad { [super viewDidLoad]; //1.总列数(一行最多3列) ; CGFloat appW=; CGFloat appH=; //2.间隙=(控制器的view的宽度-3*应用宽度)/4 CGFloat margin=(self.view.frame.size.width-totalColumns*appW)/(totalColumns+); //3.根据应用个数创建对应的框 ; index<self.apps.count; index++)…
@interface ViewController () @property (nonatomic,strong) NSArray *apps; //获取.plist数据 @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //九宫格的总列数 ; //1.1个格子的尺寸 CGFloat appW=; CGFloat appH=; //2.计算间隙 =(控制器view的宽度 -5*应用宽度)/…