10-4

冒泡排序(升序)(bubble_sort)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void bubble_sort(int arr[], int sz)
{
int i = 0;
int flag = 1; //假設本次要排序的數組已經有序
for (i = 0; i < sz - 1; i++)
{
//每一趟冒泡排序
int j = 0;
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = 0;
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = 0; //本趟不徹底有序
}
}
if (flag == 1) //break語句是在for循環中,或switch語句中的,在if語句中不能使用
//但這個if是在for循環中的,因此它是屬於for循環的。
{
break;
}
}
}
int main()
{數組

int arr[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };  //對arr進行排序,排成升序
int sz = sizeof(arr) / sizeof(arr[0]);
//傳的是首元素的地址=&arr[0 ]
bubble_sort(arr ,sz  ); //冒泡排序函數
int i = 0;
for (i = 0; i < sz; i++)
{
    printf("%d", arr[i]);

}
return 0;

}ide

數組名是什麼?
數組名就是首元素的地址
例外:1:sizeof(數組名),此時此刻數組名錶示整個元素地址,sizeof(數組),計算的是整個元素的大小,單位爲字節。
2:&數組名,取出的是整個數組的地址
#include<stdio.h>
int main()
{
int arr[] = {0,1,2,3,45,};
printf("%p\n" , &arr[0]); //打印的結果是同樣的。
printf("%p\n" , arr);
return 0;
}函數

相關文章
相關標籤/搜索