冒泡排序(OC和C语言)

2020-10-23  本文已影响0人  Queen_BJ
【冒泡排序】: 相邻元素两两比较,比较完一趟,最值出现在末尾
OC语言
NSMutableArray *mutArr = [NSMutableArray arrayWithObjects:@"90",@"7",@"1",@"15",@"10",@"37", nil];
 
    for (NSInteger i = 0; i < mutArr.count - 1; i++) {
        
        for (NSInteger j = 0; j < mutArr.count - 1 - i; j++ ) {
        
             // 一定要转成整型否则不能比较结果错误
            if ( [mutArr[j] integerValue] > [mutArr[j+1] integerValue]) {
                
                [mutArr exchangeObjectAtIndex:j+1 withObjectAtIndex:j];
            
            }
        }
    }
    
    NSLog(@"---%@\n--",mutArr);

2020-10-22 16:35:02.854602+0800 OCLanageAlgDemo[3085:207147] ---(
    1,
    7,
    10,
    15,
    37,
    90
)
--

C语言
#include <stdio.h>
#include <stdlib.h>

void bubbleSort(int *arr,int length);

int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");

    int arr[] = {35,5,9,1,2,56};

    int length = 0;
    // 计算数组中数据长度 :
    // 所有数据的字节数除以一个数据的字节数即为数据的个数 :
    length = sizeof(arr) / sizeof(int);

    bubbleSort(arr, length);

    return 0;
}

void bubbleSort(int *arr,int length)
{
    // 趟数
    for (int i = 0; i < length - 1; i++) {
        // 比较次数
        for (int j = 0; j < length - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    
    // 打印数组
    for(int i = 0 ; i < length ; i++ )
    {
        printf("arr = %d\n",arr[i]);
    }
   
}


arr = 1
arr = 2
arr = 5
arr = 9
arr = 35
arr = 56
上一篇 下一篇

猜你喜欢

热点阅读