zoukankan      html  css  js  c++  java
  • ACM——简单排序

    简单选择排序

    时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
    总提交:836            测试通过:259

    描述

     

    给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中的简单选择排序算法进行排序,并输出排序过程中每趟及最后结果的相应序列。

     

    输入

     

    共两行,第一行给出排序元素数目n,第二行给出n个元素,1n400,每个元素值范围为 [0100000)

     

    输出

     

    三个部分

    1部分为两行,第1行输出文字“Source:”,第2行给出原始序列;

    2部分,开始输出文字“Select Sort:”,后续输出简单选择排序过程;

    3部分,开始输出文字“Result:”,后续输出排序结果。

     

    样例输入

    7
    48 36 68 72 12 48 2

    样例输出

    Source:
    (48 36 68 72 12 48 2)
    Select Sort:
    (2) 36 68 72 12 48 48
    (2 12) 68 72 36 48 48
    (2 12 36) 72 68 48 48
    (2 12 36 48) 68 72 48
    (2 12 36 48 48) 72 68
    (2 12 36 48 48 68) 72
    Result:
    (2,12,36,48,48,68,72)

    提示

     数据结构A实验四

    题目来源

    CHENZ

     

    #include<iostream>
    using namespace std;
    int main()
    {
        int n,i;
        std::cin>>n;
        int *arr=new int[n];
        for(i=0;i<n;i++)
        {
            std::cin>>arr[i];
        }
        std::cout<<"Source:"<<std::endl;
        std::cout<<"(";
        for(i=0;i<n;i++)
        {
            std::cout<<arr[i];
            if(i<n-1)
                std::cout<<" ";
        }
        std::cout<<")"<<std::endl;
        std::cout<<"Select Sort:"<<std::endl;
        for(i=0;i<n;i++)
        {
            int k=i;
            for(int j=i+1;j<n;j++)
            {
                if(arr[j]<arr[k])
                {
                    k=j;
                }
            }
            if(k!=i)//交换数据
            {
                arr[i]=arr[i]+arr[k];
                arr[k]=arr[i]-arr[k];
                arr[i]=arr[i]-arr[k];
                std::cout<<"(";
                for(int m=0;m<n;m++)
                {
                    std::cout<<arr[m];
                    if(m==i)
                        std::cout<<")";
                    std::cout<<" ";
                }
                std::cout<<std::endl;
            }
        }
        std::cout<<"Result:"<<std::endl;
        std::cout<<"(";
        for(i=0;i<n;i++)
        {
            std::cout<<arr[i];
            if(i<n-1)
                std::cout<<",";
        }
        std::cout<<")"<<std::endl;
        return 0;
    }

     

     
  • 相关阅读:
    变形金刚还有一个星期!
    SQLSERVER中日期显示样式(网络收集)
    美国《商业周刊》网站提前公布的2007年度世界最有价值品牌
    昨天论文被录 开心
    怎样用javascript操作ftb编辑区内容
    c#中 @的用处
    图片滚动代码。
    一段实现分页的存储过程
    下拉列表控制文本框的个数思路
    什么是ERP (转载自百度知道)
  • 原文地址:https://www.cnblogs.com/BasilLee/p/3787624.html
Copyright © 2011-2022 走看看