一、简介
依次比较两个相邻的元素大小,较大的数下沉,较小的数冒起来,时间复杂度为 ,稳定。
二、原理
1)比较相邻的元素。如果第一个比第二个大,就交换他们两个
2)继续比较下面的两个元素,小的放前面,这一趟下来,最大的数就在最后一个
3)重复上述步骤,第二趟、第三趟。。。,最小的数逐渐往上冒,就排好了序
三、代码
int main(void)
{
int a[] = {1, 2, 4, 3};
int i;
int j;
int temp;
int n = sizeof(a) / sizeof(a[0]);
printf("n = %d\n", n);
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}