原理:
从小到大:
#include<stdio.h>
int main() {
int arr[10] = { 1,3,5,7,9,8,6,4,2,10 };
for (int i = 0; i < sizeof(arr)/sizeof(arr[0])-1; i++){
//你也可以把sizeof(arr)/sizeof(arr[0])-1换位,10-1
for (int j = 0; j < sizeof(arr)/sizeof(arr[0])-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 < sizeof(arr)/sizeof(arr[0]); i++)
{
printf("%3d", arr[i]);
}
return 0;
}
从大到小:
int main(void) {
int arr[10] = { 1,3,5,7,9,8,6,4,2,10 };
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]) - 1; i++) {//每执行一次必提取一个最小值
for (int j = 0; j < sizeof(arr) / sizeof(arr[0]) - 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 < sizeof(arr) / sizeof(arr[0]); i++)//遍历数组
{
printf("%3d", arr[i]);
}
return 0;
}