zoukankan      html  css  js  c++  java
  • 简单选择排序(Simple Selection Sort)

    简单选择排序(Simple Selection Sort):相比较冒泡排序,每次都是两两比较交换,n个元素n-1次比较可以确定1个元素的最终位置。简单选择排序法就是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1≤i≤n)个记录交换。

    #include<iostream>
    using namespace std;
    //简单选择排序
    int simpleSelectionSort(int* arr,int length);
    void swap(int& elem1,int& elem2);
    void test();
    void printArr(int* arr,int length);

    void swap(int& elem1,int& elem2)
    {
            int tmp = elem1;
            elem1 = elem2;
            elem2 = tmp;
    }
    int simpleSelectionSort(int* arr,int length)
    {
            if(NULL==arr||length<=0)
                    return -1;
            int minPos = 0;
            for(int idx=0;idx!=length;++idx)
            {
                    minPos = idx;
                    for(int iidx=idx+1;iidx<length;++iidx)
                    {
                            if(arr[iidx]<arr[minPos])
                            {
                                    minPos = iidx;
                            }
                    }
                    if(idx!=minPos) 
                    {
                            swap(arr[idx],arr[minPos]);
                    }
            }
            return 0;
    }
    void printArr(int* arr,int length)
    {
            if(NULL==arr||length<=0)
                    return ;
            for(int idx=0;idx!=length;++idx)
            {
                    cout<<arr[idx]<<" ";
            }
            cout<<endl;
    }
    void test()
    {
            int arr[] = {6,5,3,1,8,7,2,4};
            printArr(arr,8);
            simpleSelectionSort(arr,8);
            printArr(arr,8);
            cout<<endl;

            int arr1[] = {1,2,3,4,5,6,7,8};
            printArr(arr1,8);
            simpleSelectionSort(arr1,8);
            printArr(arr1,8);
            cout<<endl;

            int arr2[] = {2,2,2,2};
            printArr(arr2,4);
            simpleSelectionSort(arr2,4);
            printArr(arr2,4);
            cout<<endl;

            int arr3[] = {2,2,1,2};
            printArr(arr3,4);
            simpleSelectionSort(arr3,4);
            printArr(arr3,4);
            cout<<endl;

            int* arr4 = NULL;
            printArr(arr4,4);
            simpleSelectionSort(arr4,4);
            printArr(arr4,4);
            cout<<endl;
    }
    int main()
    {
            test();
            system("pause");
    }
  • 相关阅读:
    Jquery的小案例4、实现表单的验证(用户名和邮箱)
    Ubuntu下安装Python
    ListView列宽自适应
    IPtables 版本升级到 v1.4.9
    穿过已知点画平滑曲线(3次贝塞尔曲线)
    贪心算法——NY 14 会场安排问题
    零是奇数还是偶数?
    免费淘宝IP地址库简介及PHP/C#调用实例
    html锚点(mao dian)特殊的超链接
    怎么查看自己电脑的IP地址
  • 原文地址:https://www.cnblogs.com/meihao1203/p/9190623.html
Copyright © 2011-2022 走看看