1799 - 基础排序I:冒泡排序

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB
冒泡排序(Bubble Sort),是一种计算机领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。

由于冒泡排序简洁的特点,它通常被用来对于计算机程序设计入门的学生介绍算法的概念。


此题用作练习题,请用冒泡排序完成此题。

题目输入

第一行输入一个整数n(0<n<=100000),表示有n个待排序数据;
随后的n行每行输入一个整数。

题目输出

升序输出排序结果

输入/输出样例

输入格式

5
5 4 3 2 1

输出格式

1 2 3 4 5

C语言解答

#include<stdio.h>
main()
{
	int i,j,t,n,a[100000];
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(i=1;i<n;i++)
		for(j=0;j<n-1;j++)
			if(a[j]>a[j+1])
			{
				t=a[j]; a[j]=a[j+1]; a[j+1]=t;
			}
			for(i=0;i<n;i++)
				printf("%d ",a[i]);
			printf("\n");
}

C++解答

#include<iostream>
using namespace std;
int main(){
	int a[100000],i,j;
	int n;
	cin>>n;
	for( i=0;i<n;i++)
		cin>>a[i];
	for(i=0;i<n-1;i++)
		for(j=0;j<n-i-1;j++){
			if(a[j]>a[j+1]){
				int t=a[j+1];
				a[j+1]=a[j];
				a[j]=t;
			}
		}
		cout<<a[0];
	for(i=1;i<n;i++)
		cout<<" "<<a[i];
	cout<<endl;

}

Java解答

import java.util.Scanner;
public class Main
{
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int arr[]=new int[n];
		for(int i=0;i<n;i++)
		{
			arr[i]=sc.nextInt();
		}
		bubbleSort(arr);
		for(int i=0;i<n-1;i++)
		{
			System.out.print(arr[i]+" ");
		}
		System.out.println(arr[n-1]);
	}
	public static void bubbleSort(int arr[])//冒泡排序
	{
		for(int i=0;i<arr.length-1;i++)
		{
			for(int j=0;j<arr.length-i-1;j++)
			{
				if(arr[j]>arr[j+1])
				{
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
	}
}