用选择法对10个整数进行升序排序
思路
- 把首项当成最大最小元素
- 从剩余的元素中继续找到最大最小元素
- 需要确定每次找到的最大最小元素的下标
代码实现
int main(){
int a[10]={4,31,5,67,4,4,3,2,6,0},i,j,x,z;
for(i=0;i<9;i++){
x=i; //,先将a[i]当成最小的数,遍历找到最小的数的下标
for(j=i+1;j<10;j++){
if(a[x]>a[j]) //a[x]当成最小的数,于后面的元素一 一比较,
x=j; //如果a[x]>a[j]那么x等于j,变换最小值的下标
}
if(x!=i){ //如果x!=i,说明x的值已经改变,找到了比a[i]还小的数的下标
z=a[i]; //进行a[i]和a[x]的交换
a[i]=a[x];
a[x]=z;
}
}
for(j=0;j<10;j++){
printf("%d ",a[j]);
}
}
备注
2020专接本已经结束,现出一些计算机专业自己专接本备考期间搜集到的以及用的资料以及试题
需要的同学可以看看,有jxn,jt,sx的一些例题