小到大
#include <stdio.h>
#include <stdlib.h>
// 冒泡排序 从小到大
void max1()
{
int a[8] = { 2,1,6,3,4,9,8,7 };
printf("排序前是:\n");
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
printf("%d ", a[i]);
}
printf("\n");
//外层循环
for (int i = 0; i < sizeof(a) / sizeof(int) - 1; i++)
{
//内层循环 每次循环内存循环就总数组元素 - 外存循环次数 - 末尾最大所有不用在比较
for (int j = 0; j < (sizeof(a) / sizeof(int) - i - 1); j++)
{
// 当前下标元素 > 相邻下标 就进行交换
if (a[j] > a[j + 1])
{
int c = a[j]; // 临时存放最大值
a[j] = a[j+1]; // 小值在前
a[j+1] = c; // 大值在后
}
}
}
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
int main()
{
max1();
system("pause");
return EXIT_SUCCESS;
}
大到小
#include <stdio.h>
#include <stdlib.h>
// 冒泡排序 从小到大
void max1()
{
int a[8] = { 2,1,6,3,4,9,8,7 };
printf("排序前是:\n");
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
printf("%d ", a[i]);
}
printf("\n");
//外层循环
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
//内层循环 每次循环内存循环就总数组元素 - 外存循环次数 - 末尾最大所有不用在比较
for (int j = 0; j < (sizeof(a) / sizeof(int) - i - 1); j++)
{
// 当前下标元素 > 相邻下标 就进行交换
if (a[j] < a[j + 1])
{
int c = a[j]; // 临时存放最大值
a[j] = a[j+1]; // 小值在前
a[j+1] = c; // 大值在后
}
}
}
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
int main()
{
max1();
system("pause");
return EXIT_SUCCESS;
}