HDU-1040- As Easy As A+B-选择排序+冒泡排序

其实贴这道题目是为了给新手介绍一下这几个简单排序方法;

首先我们看一下选择排序,思路很简单,就是从第一个开始每次定位一个数,和数组中最大(最小)的数交换一下位置;

不过这是个不稳定排序算法;

#include
int a[1005];
//  交换函数;
void Swap(int &a,int &b)
{
    int temp=a;
    a=b;
    b=temp;
}
int main()
{
    int n,t;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        for(int i=0;ia[j]) Swap(a[i],a[j]);
            }
        }
        for(int i=0;i

恩,现在我们再看一下冒泡排序;

冒泡冒泡,顾名思义,跟鱼吐泡泡似的,越靠近水面越大;从第一个开始一次比较相邻两个数的大小,不符合顺序便交换顺序;

每一轮交换,便将最大(最小)的数“吐”出来了。。。

详细过程详解大家可以看一下这个链接,有案列分析:http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html

#include
int a[1005];
//  交换函数;
void Swap(int &a,int &b)
{
    int temp=a;
    a=b;
    b=temp;
}
int main()
{
    int n,t;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        for(int i=0;ia[j+1]) Swap(a[j],a[j+1]);  //  交换临近两个数的顺序;
            }
        }
        for(int i=0;i



 

你可能感兴趣的:(排序,选择排序与冒泡排序详解,HDU1040)