设为首页 加入收藏

TOP

交换排序(参考数据结构C语言版)
2017-10-11 17:11:16 】 浏览:5318
Tags:交换 排序 参考 数据结构 语言
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
#define MAX_NUM 100
template<typename T>
/*#define SWAP(x,y) (x=x+y,y=x-y,x=x-y) //此处宏定义,由于两数相等的话,会产生y=0,所以宏定义写法不建议这样写,可以用第三个变量进行交换。*/
void selectionSort(T arr[],int n)
{
    for(int i=0;i<n-1;i++)
        {
            int min=i;
            for(int j=i+1;j<n;j++)
            {
                if(arr[j]<arr[min])
                min=j;
            }
            swap(arr[i],arr[min]);
        //    SWAP(arr[i],arr[min]);        
        }
}
int main()
{
    int arr[MAX_NUM],i,n;
    cout<<"arr number of rand numbers before sort:";
    cin>>n;  //由于使用cin>>n>>endl;发生报错,一直没有找到错误,发现endl只能和cout配套使用,cin是C++标准输入流.
    if(n<1||n>MAX_NUM)
    {
        fprintf(stderr,"Improper value of n\n");exit(1);
    }
    for(i=0;i<n;i++)
        arr[i]=rand()%100;
    for(i=0;i<n;i++)
         cout<<arr[i]<<" ";
    cout<<"\n";
    cout<<"after sort number of numbers:\n";
    selectionSort(arr,n);
    for(i=0;i<n;i++)
        cout<<arr[i]<<" ";
    cout<<"\n ";

    float arr2[MAX_NUM];
    for(i=0;i<n;i++)
        arr2[i]=(float)rand()/10;
    cout<<"arr2 number of rand numbers before sort:\n";
    for(i=0;i<n;i++)
        cout<<arr2[i]<<" ";
    cout<<"\n";
    cout<<"after sort number of numbers:\n";
    selectionSort(arr2,n);
    for(i=0;i<n;i++)
        cout<<arr2[i]<<" ";
    cout<<"\n";
    return 0;
}

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇3138 栈练习2 下一篇约瑟夫环 队列+链表

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目