c語言初學者氣泡排序
先看一張圖
用函式寫的
void bubble_sort(int arr[], int sz)
{
int i = 0;
int temp = 0;
for (i = 0; i < sz - 1; i++)//迴圈8次
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j]<arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void printf_arr(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)//遍歷陣列元素
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int sz = sizeof(arr) / sizeof(arr[0]);//求陣列大小
bubble_sort(arr, sz); //排序函式
printf_arr(arr, sz);//列印函式
return 0;
}
可能有些人不太明白函式為啥有時候是“void”,是因為void 不需要返回值,排序直接排好,遍歷陣列直接遍歷好,不用再返回去,而比如我下邊寫的這個加法函式,它是“int” 它加完後需要把z的值返回去再拿c接受。
int ADD(int x, int y)
{
int z = x + y;
return z;
}
int main()
{
int a = 1;
int b = 2;
int c = ADD(a, b);
printf("%d\n", c);
return 0;
}
還有這個sz是怎麼算的?
int型別是 4個位元組,陣列裡邊有9個數字就是36個位元組,sizeof(arr)= 36;sizeof(arr[0])= 4,所以兩個相除就是9,這樣的話就比較靈活,不管陣列裡放幾個數字都只用計算一邊,直接拿來用。
無函式
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int sz = sizeof(arr) / sizeof(arr[0]);//求陣列大小
int i = 0;
int temp = 0;
//排序
for (i = 0; i < sz - 1; i++)//迴圈8次
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j]<arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//遍歷陣列
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
結果
相關文章
- 【C語言】氣泡排序與快速排序C語言排序
- C語言之氣泡排序C語言排序
- 用Java語言寫氣泡排序Java排序
- c語言 - 模仿qsort的功能實現一個通用的氣泡排序C語言排序
- 孫海洋老師C語言零基礎自學入門 ----排序演算法 之 "氣泡排序"C語言排序演算法
- 淺析氣泡排序-c++排序C++
- 排序——氣泡排序排序
- 氣泡排序排序
- 9. 氣泡排序,以及如何優化氣泡排序,氣泡排序屬於插入排序排序優化
- 排序:氣泡排序&快速排序排序
- js氣泡排序JS排序
- JavaScript氣泡排序JavaScript排序
- 氣泡排序1排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 容器氣泡排序排序
- 氣泡排序法排序
- 氣泡排序(Java)排序Java
- Python 氣泡排序Python排序
- 淺析氣泡排序排序
- 陣列氣泡排序陣列排序
- Python_氣泡排序Python排序
- 氣泡排序筆記排序筆記
- 氣泡排序(python版)排序Python
- 19_氣泡排序排序
- 函式氣泡排序函式排序
- 排序演算法--氣泡排序排序演算法
- 排序演算法__氣泡排序排序演算法
- 排序演算法–氣泡排序排序演算法
- 選擇排序和氣泡排序排序
- 氣泡排序與選擇排序排序
- 【排序】氣泡排序(待補充)排序
- C++排序演算法之氣泡排序改進版C++排序演算法
- 氣泡排序 插入排序 快排排序
- C語言實用演算法系列之學生管理系統_對整個結構體操作_氣泡排序_提取排序規則C語言演算法結構體排序
- Python實現氣泡排序Python排序