您的位置:首页 > 编程语言 > Java开发

蓝桥杯2014年以前JAVA历年真题及答案整理——数列排序

2014-03-21 23:27 507 查看
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
       5

       8 3 6 4 9
样例输出
       3 4 6 8 9
java实现:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main (String args[])throws Exception{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(buf.readLine());
String s=buf.readLine();
String s1[]=s.split(" ");
StringBuffer sb=new StringBuffer();
int a[]=new int
;
for(int i=0;i<n;i++){
a[i]=Integer.parseInt(s1[i]);
}
java.util.Arrays.sort(a);
for(int j=0;j<n;j++)
sb.append(a[j]).append(" ");
System.out.println(sb);
}
}

C实现:

#include <stdio.h>

void swap(int* a, int *b)
{
int c = *a;
*a = *b;
*b = c;
}

void sort(int* arr, int len)
{
if (len <= 1) return;
int x = arr[len-1];
int i = 0, j = 0;
while (j < len - 1)
{
if (arr[j] < x)
swap(&arr[i++], &arr[j]);
j++;
}
swap(&arr[i], &arr[len-1]);
sort(arr, i);
sort(arr + i + 1, len - i - 1);
}

int main()
{
int i, n, a[200];
scanf("%d", &n);
for (i = 0; i < n; i++) scanf("%d", &a[i]);
sort(a, n);
for (i = 0; i < n; i++) printf("%d ", a[i]);
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐