1、冒泡排序
思想:从左至右两两依次比较,如果前一个数比后一个数大的话就交换位置,否则不变。
思路例子:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a[10] = {0};
int i, j, t;
printf("请输入10个数字:");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
for (i = 1; i < 10; i++)
{
for (j = 0; j < 10 - i; j++)
{
if (a[j] < a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (i = 0; i < 10; i++)
{
printf("a[%d]=%d\n", i, a[i]);
}
return 0;
}
2、选择排序
思路:首先将第一个数字与之后的数字依次比较,如果第一个数字小于后面的数字,交换顺序。然后将第二个数字与之后的数字依次比较,后面同理。一直比较到倒数第二个数字时停止。
外部循环了数组长度-1次。
内部循环从外部循环的+1开始循环比较,直到数组最后一个数字。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a[10] = { 0 };
int i, j, t;
printf("请输入10个数字:");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < 9; i++)
{
for (j = i + 1; j < 10; j++)
{
if (a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for (i = 0; i < 10; i++)
{
printf("a[%d]=%d\n", i, a[i]);
}
return 0;
}
版权声明:本文为qq_45979523原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。