zoukankan      html  css  js  c++  java
  • 简单选择排序

    简单选择排序的基本思想是每一趟在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
  • 相关阅读:
    bash 学习笔记5
    zookeeper启动脚本修改
    java enmu 使用说明
    bash 学习笔记4
    zookeep集群搭建说明
    bash 学习笔记3
    集群配置问题
    hadoop hdfs 总结(1)
    bash 学习笔记6
    bash pitfall
  • 原文地址:https://www.cnblogs.com/tommychok/p/5031061.html
Copyright © 2011-2022 走看看