數組(冒泡排序的使用)

小聰不想禿頭 2022-01-08 05:59:21 阅读数:605

冒泡 排序 使用

注意的幾個問題:

計算數組的長度還是在函數的外面進行計算,因為傳入的數組是數組的首地址,接收時用數組接收,但它還是一個指針變量。排序的每一趟是數組長度-1,而每次排序則是長度-1再减去趟數的變量,因為分析排序後的數值就在最後面了。這裏定義一個flag來判斷是否不需要經過n-1次就直接排序好了。定義flag=1,如果不用排序就直接跳過,就不用說一定要排序到n-1次

#include<stdio.h>
// 冒泡排序的練習
void bubble_sort(int arr[],int n) {
for (int i=0; i < n - 1; i++) {
int flag = 1;
for (int j = 0; j < n - 1 - i; j++)
{
if (arr[j] > arr[j + 1]) {
int temp ;
temp = arr[j];
arr[j] = arr[j + 1] ;
arr[j+1] = temp;
flag = 0;
}
}
if (flag == 1) {
break;
}
}
}
int main() {
int arr[] = { 1,23,56,75,68,35,45 };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr,sz);
for (int i = 0; i < sz; i ++ ) {
printf("%d ", arr[i]);
}
}

版权声明:本文为[小聰不想禿頭]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080559210439.html