#include<stdio.h>
#include<stdlib.h>
//升序排序
void BubbleSort(int* arr, int size)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size-1-i; 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 < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[6] = { 1, 3, 5, 2, 4, 6 };
BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
//升序排序
void BubbleSort(int* arr, int size)
{
//[0,bound)已排序区间
//[bound,size)待排序区间
//每次找一个最小值放最前面,bound边界也就++
int bound = 0;
for (bound = 0; bound < size; bound++)
{
for (int cur = size - 1; cur>bound; cur--)
{
if (arr[cur - 1] > arr[cur])
{
int temp = arr[cur - 1];
arr[cur - 1] = arr[cur];
arr[cur] = temp;
}
}
}
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[6] = { 1, 3, 5, 2, 4, 6 };
BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
system("pause");
return 0;
}
3.回调函数
#include<stdio.h>
#include<stdlib.h>
typedef int(*Com)(int a, int b);
//升序排序
void BubbleSort(int* arr, int size,Com comp)
{
//[0,bound)已排序区间
//[bound,size)待排序区间
//每次找一个最小值放最前面,bound边界也就++
int bound = 0;
for (bound = 0; bound < size; bound++)
{
for (int cur = size - 1; cur>bound; cur--)
{
if (comp(arr[cur - 1] ,arr[cur]))
{
int temp = arr[cur - 1];
arr[cur - 1] = arr[cur];
arr[cur] = temp;
}
}
}
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int Less(int a, int b)
{
return a > b ? 1 : 0;
}
int main()
{
int arr[6] = { 1, 3, 5, 2, 4, 6 };
BubbleSort(arr, sizeof(arr) / sizeof(arr[0]),Less);
system("pause");
return 0;
}