【c语言22之排序问题
题目:给定五个数字进行排序。源代码:#include<stdio.h>int main(){/*八大排序*/int a[5];for (int i = 0; i < 5; i++) {scanf("%d", &a[i]);}maopao(a, 5);for (int i = 0; i < 5; i++) {printf("%d\t", a[i]);}printf("
·
题目:
给定五个数字进行排序。
源代码:
#include<stdio.h>
int main()
{
/*
八大排序
*/
int a[5];
for (int i = 0; i < 5; i++) {
scanf("%d", &a[i]);
}
maopao(a, 5);
for (int i = 0; i < 5; i++) {
printf("%d\t", a[i]);
}
printf("\n");
printf("=====================\n");
xz(a, 5);
for (int i = 0; i < 5; i++) {
printf("%d\t", a[i]);
}
printf("\n");
printf("=====================\n");
zj(a, 5);
for (int i = 0; i < 5; i++) {
printf("%d\t", a[i]);
}
printf("\n");
printf("=====================\n");
return 0;
}
//冒泡排序
int maopao(int a[],int n)
{
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
int temp;
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
//选择排序
int xz(int ar[], int n)
{
for (int i = 0; i < n - 1; i++) {
int k = i;
for(int j = i + 1; j < n; j++) {
int temp;
if (ar[j] < ar[k]) {
temp = ar[i];
ar[i] = ar[j];
ar[j] = temp;
}
}
}
}
//直接插入排序
int zj(int aa[], int n)
{
for (int i = 1; i < n; i++) {
int t;
t = aa[i];
for (int j = i - 1; j >= 0 && aa[j] > t; j--) {
aa[j + 1] = aa[j];
aa[j] = t;
}
}
}
运行结果图:
更多推荐
已为社区贡献1条内容
所有评论(0)