一 选择排序
#include <stdio.h>
/*
选择排序的原理
每次拿一个值跟后面所有的值进行比较,每轮比较结束,最值出现在头角标上
*/
int main(int argc, const char * argv[])
{
int ages[5] = {12, 14, 10, 21, 5};
int length = sizeof(ages)/sizeof(ages[0]);
for (int j = i + 1; j < length; j++) {
printf("*");
if (ages[i] > ages[j]) {
int temp = ages[i];
ages[i] = ages[j];
ages[j] = temp;
}
}
printf("\n");
}
for (int i = 0; i < length; i++) {
printf("%d\n",ages[i]);
}
return 0;
}
二 冒泡排序
#include <stdio.h>
// 冒泡排序的原理
// 用相邻的两个元素进行比较,每当比较完一轮,最(大)值出现在尾角标
// 比较的时候都是一样的,如果前面一个元素>后面的元素,就交换
int main(int argc, const char * argv[])
{
int ages[5] = {12, 14, 10, 21, 5};
int length = sizeof(ages)/sizeof(ages[0]);
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 1 - i; j++) {
if (ages[j] > ages[j + 1]) {
int temp = ages[j];
ages[j] = ages[j + 1];
ages[j + 1] = temp;
}
}
}
for (int i = 0; i < 5; i++) {
printf("%d\n",ages[i]);
}
return 0;
}