zoukankan      html  css  js  c++  java
  • 交换排序(参考数据结构C语言版)

    #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
    ");exit(1);
        }
        for(i=0;i<n;i++)
            arr[i]=rand()%100;
        for(i=0;i<n;i++)
             cout<<arr[i]<<" ";
        cout<<"
    ";
        cout<<"after sort number of numbers:
    ";
        selectionSort(arr,n);
        for(i=0;i<n;i++)
            cout<<arr[i]<<" ";
        cout<<"
     ";
    
        float arr2[MAX_NUM];
        for(i=0;i<n;i++)
            arr2[i]=(float)rand()/10;
        cout<<"arr2 number of rand numbers before sort:
    ";
        for(i=0;i<n;i++)
            cout<<arr2[i]<<" ";
        cout<<"
    ";
        cout<<"after sort number of numbers:
    ";
        selectionSort(arr2,n);
        for(i=0;i<n;i++)
            cout<<arr2[i]<<" ";
        cout<<"
    ";
        return 0;
    }
  • 相关阅读:
    博客第8周
    剑指offer 位运算
    真题
    剑指offer分类刷题(转载)
    PV PVC StorageClass是什么?
    k8s使用rbac实现多租户
    ansible-playbook 使用blockinfile 修改/etc/hosts 主机名
    ansible-playbook 一键部署ntp时间同步 yml
    简单搭建一个HTTP文件下载服务器
    常用docker命令备忘
  • 原文地址:https://www.cnblogs.com/dog-and-cat/p/6628810.html
Copyright © 2011-2022 走看看