用于将一个数组的数据从低往高排序
/*
冒泡排序,n个数
第一个for循环是第几次归为元素,每次只能归位一个数到末尾,,执行n-1次(只需要排这么多次就拍好了,最后一个不用排)
第二个for循环将数字两两比较找到最大数字放在最后,执行 n-1-已经归好位的元素个数 次
*/
void bubble_sort(int arr[]) {
int i, j, temp;
int len = (int) sizeof(arr) / sizeof(*arr);
for (i = 0; i < len - 1; i++)//第一轮,从0到len - 1有len - 1次,因为排len个数只用len-1次
for (j = 0; j < len - 1 - i; j++)//第二轮 ,减去排好的数
if (arr[j] > arr[j + 1]) {//如果 j号元素比下一个元素大
temp = arr[j];//设置临时变量为 j元素
arr[j] = arr[j + 1];//把j+1元素值赋给j号元素
arr[j + 1] = temp;//把刚刚j号元素值赋给j+1号元素
//即把 j号元素和下一个元素 换位 以此类推将把这个元素推到最后
}
}
选择排序
void selection_sort(int a[], int len)
{
int i,j,temp;
for (i = 0 ; i < len - 1 ; i++)
{//从0到len - 1有len - 1次,因为排len个数只用len-1次
int min = i; // 记录最小值,第一个元素默认最小
for (j = i + 1; j < len; j++) // 访问未排序的元素
{
if (a[j] < a[min]) // 找到目前最小值
{
min = j; // 记录最小值
}
}
if(min != i)
{
temp=a[min]; // 交换两个变量
a[min]=a[i];
a[i]=temp;
}
//交换
}
}