书上的算法
#include<stdio.h>
#include<stdio.h>
#define SIZE sizeof(arr) / sizeof(arr[0])
#define N 10
int main(){
int arr[N] = { 2, 4, 5, 7, 8, 3, 6, 9, 10, 1 };
int i, j;
for (i = 0; i < N -1; i++){
for (j = 0; j < N-(i + 1); j++){
if (arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < N; i++){
printf("%d", arr[i]);
}
system("pause");
return 0;
}
函数传参的形式
#include<stdio.h>
#include<stdio.h>
#define SIZE sizeof(arr) / sizeof(arr[0])
#define N 10
void Swap(int* x, int* y){
int tmp = *x;
*x = *y;
*y = tmp;
}
void BubbleSoft(int arr[], int size){
int bound;
for (bound = 0; bound < size; bound++){
for (int cur = size - 1; cur >bound; --cur){
if (arr[cur - 1] > arr[cur]){
Swap(&arr[cur - 1], &arr[cur]);
}
}
}
}
int main(){
int arr[N] = { 2, 4, 5, 7, 8, 3, 6, 9, 10, 1 };
BubbleSoft(arr, SIZE);
for (int i = 0; i < N; i++){
printf("%d", arr[i]);
}
system("pause");
return 0;
}
自己写的
#include<stdio.h>
#include<stdlib.h>
#define N 10
int main(){
int arr[N] = { 2, 4, 5, 7, 8, 3, 6, 9, 10, 1 };
int i, j;
for (i = 0; i < N; i++){
for (j = i; j < N; j++){
if (arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < N; i++){
printf("%d", arr[i]);
}
system("pause");
return 0;
}