简介:输入N个数,进行降序排序。
1,选择法排序
将第一个数依次与后面的每一个数相比,将得到的最值与第一个数交换,依次循环。
流程图:
函数:
#include<stdio.h>
void selectSort(int arry[], int n) {
//i,j为循环变量
//k临时存储i的值
//temp用于交换的临时变量
int i, j, k, temp;
for (i = 0; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++)
if (arry[j] > arry[k])
k = j;
temp = arry[k];
arry[k] = arry[i];
arry[i] = temp;
}
//输出数组元素
for (i = 0; i < n; i++)
printf("%d\t", arry[i]);
}
函数调用:
#include<stdio.h>
int main() {
void selectSort(int arry[], int n);
int a[6] = { -1,9,80,-10,4,21 };
selectSort(a, 6);
return 0;
}
结果:
2,冒泡法排序:
从第一个数开始,依次与后面的数据进行比较,满足条件就交换。
流程图:
函数:
#include<stdio.h>
void maoPaoSort(int arry[], int n) {
int t;//交换变量
int i,j;//循环控制
for(i=0;i<=n-1;i++)
for (j = i + 1; j < n; j++) {
if(arry[i]<arry[j])
{
t = arry[i];
arry[i] = arry[j];
arry[j] = t;
}
}
for (i = 0; i < n; i++)
printf("%d\t", arry[i]);
}
函数调用:
#include<stdio.h>
int main() {
/*void selectSort(int arry[], int n);*/
void maoPaoSort(int arry[], int n);
int a[6] = { -1,9,80,-10,4,21 };
/*selectSort(a, 6);*/
maoPaoSort(a, 6);
return 0;
}
结果: