• 简单选择排序


    简单选择排序的基本思想是每一趟在n-i+1(i=1,2,3...n-1)个记录中选取关键字最小的记录作为有序序列的第i个记录

    稳定性:简单选择排序是不稳定排序

    时间复杂度:最好 O(n^2)  最坏 O(n^2)  平均 O(n^2)

    辅助空间:O(1)

    给定排序要用到的swap函数:

    void swap(int* a, int* b){
        *a ^= *b;
        *b ^= *a;
        *a ^= *b;
    }
    View Code

    简单选择排序数组版:

    /* 简单选择排序 --- 数组版 */
    void SelectSort(int* L, int n){
        int minn;
        for (int i = 0; i < n - 1; ++i){
            minn = i;
            for (int j = i + 1; j < n; ++j){
                if (L[j] < L[minn]){
                    minn = j; //记录最小值的下标
                }
            }//for(j)
            //将最小值换位到无序区的最前面
            if (minn != i){
                swap(L + i, L + minn);
            }
        }//for(i)
    }
    View Code

    简单选择排序指针版:

    /* 简单选择排序 --- 指针版 */
    /* [head, tail)为左闭右开区间*/
    void SelectSort(int* head, int* tail){
        int* minn;
        for (int* p = head; p < tail - 1; ++p){
            minn = p;
            for (int* q = p + 1; q < tail; ++q){
                if (*q < *minn){
                    minn = q; //记录最小值的位置
                }
            }//for(q)
            //将最小值换位到无序区的最前面
            if (minn != p){
                swap(minn, p);
            }
        }//for(p)
    }
    View Code
  • 相关阅读:
    开通第一天,以此随笔作为纪念
    Apache 基于IP访问网站
    命令解释
    vi总结
    RAID
    Windows虚拟机安装
    CentOS虚拟机安装
    通过挂载系统光盘搭建本地yum仓库的方法
    VMware workstation 的安装
    Linux下关于vi命令的详细解说
  • 原文地址:https://www.cnblogs.com/tommychok/p/5031061.html
Copyright © 2020-2023  润新知