选择排序

简介: 选择排序

选择排序

基本思想

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的
数据元素排完 。

直接选择排序:

在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素
若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换
在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素

选择排序.gif

{
    int tem = *e1;
    *e1 = *e2;
    *e2 = tem;
}

void SelectSort(int* a, int n)
{
    int end = n - 1, begin = 0;
    while (begin < end)
    {
        int maxi = begin, mini =begin;
        for (int i = begin; i < end; i++)
        {
            if (a[maxi] < a[i])
                maxi = i;
            if (a[mini] > a[i])
                mini = i;
        }
        Swap(&a[begin], &a[mini]);
        //maxi在开始位置的时候,要更新maxi
        if (begin == maxi)
            maxi = mini;
        Swap(&a[end], &a[maxi]);
        ++begin;
        --end;
    }
}

直接选择排序的特性总结:

  1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用
  2. 时间复杂度:O(N^2)
  3. 空间复杂度:O(1)
  4. 稳定性:不稳定
相关文章
|
20天前
|
人工智能 搜索推荐 C语言
选择排序
选择排序是一种简单直观的排序算法。其基本思想是每次从未排序部分找到最小(或最大)元素,将其放到已排序部分的末尾,直至所有元素排序完成。示例代码展示了如何使用 C 语言实现选择排序,并对一个整数数组进行排序。
12 5
|
6月前
|
算法 搜索推荐 Java
选择排序就是这么容易
选择排序就是这么容易
34 0
|
7月前
|
人工智能 算法 搜索推荐
2.选择排序
2.选择排序
25 0
|
7月前
|
搜索推荐 C++
C++选择排序的实现
C++选择排序的实现
|
搜索推荐
16 选择排序
16 选择排序
31 0
|
搜索推荐 C语言
选择排序就这么简单
从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。
170 0
选择排序就这么简单
|
机器学习/深度学习 搜索推荐 算法
选择排序的实现
选择排序的实现
107 1
|
算法 搜索推荐 测试技术
直接选择排序
直接选择排序
111 0
直接选择排序
|
搜索推荐 算法 JavaScript