【冒泡排序】: 相邻元素两两比较,比较完一趟,最值出现在末尾
- 第1趟:依次比较相邻的两个数,不断交换(小数放前,大数放后)逐个推进,最值最后出现在第n个元素位置
- 第2趟:依次比较相邻的两个数,不断交换(小数放前,大数放后)逐个推进,最值最后出现在第n-1个元素位置
- ............
- 第n-1趟:依次比较相邻的两个数,不断交换(小数放前,大数放后)逐个推进,最值最后出现在第2 个元素位置
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
网友评论