數組方法:數組
#include<stdio.h>ide
#include<stdlib.h>spa
void bubble_sort(int arr[], int sz )3d
{指針
int i = 0;blog
int j = 0;排序
for (j = 0; j < sz - 1; j++) //決定最終排序出來須要冒多少次get
{it
for (i = 0; i < sz - 1 - j; i++) //決定一次冒泡須要比較多少次io
{
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;
}
要注意的是,要理解數組和指針的不一樣,還有數組和指針寫法上的區別。
冒泡排序法的雙層循環的上限要掌握好