Vmatrix分类将会放一些我大一的时候做过的编程作业题目包括可以AC的答案。
基础题型不会放进来,会放一些我当初认为难度较高,而且比较考验代码技巧的题目。可能我的代码相比于各位大佬不是很好,但是 是可以AC的。有更好的创意和想法可以私信我或者通过评论说明。
[Sorting]选择排序
Description
选择排序和冒泡排序一样,是一种简单的排序算法。其思想就是每次在未排序的数列中,选出其中的最小值,将其加入到已排序数列的最后面。
Input
输入的第一行为t,表示有t组数据
对于每组数据,输入的第一行为n(1 <= n <= 1000),表示n个数。
第二行为n个待排序的数。
Output
输出每次选择后的结果,每个数字后面带一个空格(行末的数字后不带空格),每次结果输出一行。
Simple Input
2
5
4 6 3 9 8
6
3 9 1 5 7 8
Simple Output
3 6 4 9 8
3 4 6 9 8
3 4 6 9 8
3 4 6 8 9
1 9 3 5 7 8
1 3 9 5 7 8
1 3 5 9 7 8
1 3 5 7 9 8
1 3 5 7 8 9
code
#include<stdio.h>
int main(){
int i,j,n,index,temp,r,min,count;
scanf("%d",&n);
int arr[1000][100]={0};
int num[1000]={0};
for(i=0,count=0;i<n;i++){
scanf("%d",&num[i]);
for(j=0;j<num[i];j++){
scanf("%d",&arr[i][j]);
}
for(j=0;j<num[i]-1;j++){
min=arr[i][j];
index=j;
for(r=j;r<num[i];r++){
if(min>arr[i][r]){
min=arr[i][r];
index=r;
}
}
temp=arr[i][j];
arr[i][j]=arr[i][index];
arr[i][index]=temp;
for(r=0;r<num[i];r++){
printf((r==num[i]-1)?"%d\n":"%d ",arr[i][r]);
}
}
}
return 0;
}