#include <stdio.h>
//1.冒泡排序法
void BubbleSort(int arr[], int n)
{
int i, j, tmp;
for(i = 0; i < n - 1; ++i)
{
for(j = 1; j < n - i; ++j)
{
if(arr[j - 1] > arr[j])
{
//如果前一个大于后一个就进行交换
tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
}
}
//2.选择排序
void SelectSort(int arr[], int n)
{
int i, j, min, tmp;
for(i = 0; i < n - 1; ++i)
{
min = i;
for(j = i + 1; j < n; ++j)
{
if(arr[j] < arr[min])
min = j;//如果发现比默认最小值还小的值,就记录下该数的下标
}
if(min != i)
{
tmp = arr[i];
arr[i] = arr[min];
arr[min] = tmp;
}
}
}
//3.插入排序
void InsertSort(int arr[], int n)
{
int i, index, tmp;
for(i = 1; i < n; ++i)
{
index = i;//记录当前的数值的下标
while(index && arr[index] < arr[index - 1])//如果它小于它的前一个数值
{
//进行交换
tmp = arr[index];
arr[index] = arr[index - 1];
arr[index - 1] = tmp;
--index;
}
}
}
int main()
{
int i, arr[] = {100, -2, 7, -5,10};
//数组所占的总字节数/每个元素的字节数==数组元素的个数
// BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
// SelectSort(arr, sizeof(arr) / sizeof(arr[0]));
InsertSort(arr, sizeof(arr) / sizeof(arr[0]));
for(i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
printf("%3d", arr[i]);
printf("\n");
return 0;
}