数组方法:
#include<stdio.h>
#include<stdlib.h>
void bubble_sort(int arr[], int sz )
{
int i = 0;
int j = 0;
for (j = 0; j < sz - 1; j++) //决定最终排序出来需要冒多少次
{
for (i = 0; i < sz - 1 - j; i++) //决定一次冒泡需要比较多少次
{
if (arr [i] < arr[i + 1])
{
int tmp = arr [i];
arr[i] = arr [i + 1];
arr[i + 1] = tmp;
}
}
}
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i = 0;
bubble_sort(arr, sizeof(arr) / sizeof (arr[0]));
for (i = 0; i < sizeof (arr) / sizeof(arr[0]);i++)
{
printf( "%d ", arr[i]);
}
printf( "\n");
system( "pause");
return 0;
}
指针方法:
if (*(arr + i) < *(arr + i + 1))
{
int tmp = *(arr + i);
*( arr + i) = *(arr + i + 1);
*( arr + i + 1) = tmp;
}
要注意的是,要理解数组和指针的不同,还有数组和指针写法上的区别。
冒泡排序法的双层循环的上限要掌握好
时间: 2024-10-24 00:08:42