冒泡排序 快速排序 选择排序 插入排序
来源:互联网 发布:java连接池原理 编辑:程序博客网 时间:2024/06/06 16:59
//冒泡排序
-(void)bubbleSort{
NSMutableArray *dataArray = [[NSMutableArrayalloc]initWithArray:_valueArray];
for (int i =0; i<dataArray.count-1; i++) {
for (int j =0; j<dataArray.count-i-1; j++) {
if ([dataArray[j]intValue] > [dataArray[j+1]intValue]) {
int temp = [dataArray[j]intValue];
dataArray[j] = dataArray[j+1];
dataArray[j+1] = [NSStringstringWithFormat:@"%d",temp];
}
}
}
NSLog(@"冒泡排序%@",dataArray);
}
//快速排序
-(void)quickSort{
NSMutableArray *dataArray = [[NSMutableArrayalloc]initWithArray:_valueArray];
[selfquickSort:dataArray leftIndex:0rightIndex:dataArray.count -1];
}
- (NSInteger)getMiddleIndex:(NSMutableArray *)arr leftIndex:(NSInteger)left rightIndex:(NSInteger)right
{
NSInteger tempValue = [arr[left]integerValue];
while (left < right) {
while (left < right && tempValue <= [arr[right]integerValue]) {
right --;
}
if (left < right) {
arr[left] = arr[right];
}
while (left < right && [arr[left]integerValue] <= tempValue) {
left ++;
}
if (left < right) {
arr[right] = arr[left];
}
}
arr[left] = [NSNumbernumberWithInteger:tempValue];
NSLog(@"快速排序%@",arr);
return left;
}
- (void)quickSort:(NSMutableArray *)arr leftIndex:(NSInteger)left rightIndex:(NSInteger)right
{
if (left < right) {
NSInteger temp = [selfgetMiddleIndex:arr leftIndex:left rightIndex:right];
[selfquickSort:arr leftIndex:leftrightIndex:temp - 1];
[selfquickSort:arr leftIndex:temp +1 rightIndex:right];
}
}
//选择排序
-(void)selectionSort{
NSMutableArray *dataArray = [[NSMutableArrayalloc]initWithArray:_valueArray];
for (int i =0; i < dataArray.count; i ++) {
for (int j = i +1; j < dataArray.count; j ++) {
if ([dataArray[i]integerValue] > [dataArray[j]integerValue]) {
NSInteger temp = [dataArray[i]integerValue];
dataArray[i] = dataArray[j];
dataArray[j] = [NSNumbernumberWithInteger:temp];
}
}
}
NSLog(@"选择排序%@",dataArray);
}
//插入排序
-(void)insertionSort{
NSMutableArray *dataArray = [[NSMutableArrayalloc]initWithArray:_valueArray];
for (int i =1; i < dataArray.count; i ++) {
NSInteger temp = [dataArray[i]integerValue];
for (int j = i -1; j >= 0 && temp < [dataArray[j]integerValue]; j --) {
dataArray[j + 1] = dataArray[j];
dataArray[j] = [NSNumbernumberWithInteger:temp];
}
}
NSLog(@"%@",dataArray);
}
- 冒泡排序 快速排序 插入排序 堆排序 选择排序
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 数组排序:快速排序,选择排序,冒泡排序,插入排序
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- 冒泡排序,选择排序,插入排序,快速排序(PHP)
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- 插入排序,冒泡排序,选择排序,快速排序
- 插入排序 选择排序 冒泡排序 快速排序
- 冒泡排序、插入排序、快速排序、选择排序
- 冒泡排序-插入排序-快速排序-选择排序---飞天博客
- java实现冒泡排序,插入排序,选择排序,快速排序
- 递归,汉诺塔,冒泡排序,选择排序,插入排序,快速排序
- swift 3.0 冒泡排序,插入排序,选择排序,快速排序
- 冒泡排序、选择排序、插入排序、快速排序
- 快速排序、冒泡排序、插入排序、选择排序
- 冒泡排序 快速排序 选择排序 插入排序
- php 冒泡排序,选择排序、插入排序、快速排序
- 选择排序、快速排序、冒泡排序、插入排序
- hadoop2.2.0伪分布搭建
- Maven系列--pom.xml 配置详解
- 阿里云服务器升级导致挂载硬盘丢失进行重新挂载
- 这可能是最全的Android:Process (进程)讲解了
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- 冒泡排序 快速排序 选择排序 插入排序
- android系统资源添加
- NV12 和 NV21的区别
- 字符串反转
- 贝叶斯网络学习多节点处理技巧
- LR报错:error -26000:error out of memory解决办法
- 德国纯元素,呵护宝宝娇嫩肌肤
- Ubuntu下Nginx安装与使用
- Python上下取整