冒泡排序
#include <stdio.h>
void maopao(float *arr, int len)
{
int i = 0, j = 0;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (arr[j] < arr[j + 1])
{
arr[j] = arr[j] + arr[j + 1]; // a=a+b
arr[j + 1] = arr[j] - arr[j + 1]; // b=a-b
arr[j] = arr[j] - arr[j + 1]; // a=a-b
}
}
}
for (i = 0; i < len; i++)
{
printf("%g ", arr[i]);
}
putchar('\n');
}
int main(int argc, char const *argv[])
{
float arr[5] = {1.1, 9.8, 7.8, 4.2, 6.6};
int len = sizeof(arr) / sizeof(arr[0]);
maopao(arr, len);
return 0;
}
选择排序
#include <stdio.h>
void xuanze(float *arr, int len)
{
int i = 0,j=0;
int index;
for ( i = 0; i < len-1; i++)
{
index = i;
for ( j = i+1; j < len-1; j++)
{
if (arr[j]>arr[index])
{
index=j;
}
}
if (index!=i)
{
arr[i] = arr[i] + arr[index]; // a=a+b
arr[index] = arr[i] - arr[index]; // b=a-b
arr[i] = arr[i] - arr[index]; // a=a-b
}
}
for ( i = 0; i < len; i++)
{
printf("%g ",arr[i]);
}
putchar('\n');
}
int main(int argc, char const *argv[])
{
float arr[5] = {1.1, 9.8, 7.8, 4.2, 6.6};
int len = sizeof(arr) / sizeof(arr[0]);
xuanze(arr, len);
return 0;
}