小亮搬凳子
时间: 1ms 内存:128M
描述:
小亮想把一些高低不等的凳子按照从低到高的顺序摆好,但是他觉得工作量太大,于是小亮找小平帮忙,但是小平喜欢动脑筋,每次从凳子里找最矮的那个,把它跟第一个凳子交换位置,然后在剩下的凳子中找一个最矮的,把它跟剩下的凳子中的第一个交换位置,直到凳子有序为止。你能按照小平的的方法完成任务吗?
输入:
输入有两行
第一行输入一个整型变量n表示接下来有n个数待排序
第二行有n个数
输出:
排序后的n个数
示例输入:
7
2 1 4 3 5 7 6
示例输出:
1 2 3 4 5 6 7
提示:
参考答案(内存最优[920]):
#include <stdio.h>
int main()
{
int n;
void SelectionSort(int[],int);
scanf("%d",&n);
int i=n,a[100];
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
SelectionSort(a,n);
for(i=0; i<n; i++)
{
printf("%d ",a[i]);
}
}
void SelectionSort(int a[100], int n)
{
int t,i,j;
for(i=0; i<9; i++)
for(j=i+1; j<n; j++)
if(a[i]>=a[j])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
参考答案(时间最优[0]):
#include <stdio.h>
int main()
{
int n;
void SelectionSort(int[],int);
scanf("%d",&n);
int i=n,a[100];
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
SelectionSort(a,n);
for(i=0; i<n; i++)
{
printf("%d ",a[i]);
}
}
void SelectionSort(int pArry[], int iLen)
{
int i, j;
int k;
int temp;
for(i=0; i<iLen; i++)
{
k=i;
for (j=i+1; j<iLen; j++)
{
if(pArry[j]<pArry[k])
{
k=j;
}
}
if(k!=i)
{
temp=pArry[i];
pArry[i]=pArry[k];
pArry[k]=temp;
}
}
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。