不使用函数:
#include<stdio.h>
int main(){
int a[6]={1,3,4,6,7,8};
int temp;
for(int i=0;i<6;i++){
for(int j=0;j<6-i;j++){
if(a[j]>a[j+1])
temp=a[j+1];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("%d",a);
return 0;
封装函数实现:
#include <stdio.h>
void bubbleSort(int arr[], int n);
void bubbleSort(int arr[], int n) {
int i, j, tmp;
for (i = 0; i < n-1 ; i++) {
for (j = 0; j < n - i-1 ; j++) {
if (arr[j] > arr[j + 1]) {
// 交换arr[j]和arr[j+1]
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
//sizeof(arr) 返回整个数组所占内存大小,sizeof(arr[0]) 返回数组中第一个元素的大小,
//将它们相除即可得到数组中元素的个数
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
bubbleSort(arr, n);
printf("\nSorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}