美文网首页
1.选择排序

1.选择排序

作者: MinkChannel | 来源:发表于2016-07-03 21:37 被阅读19次

1. 概念

不断的选择剩余元素中的最小者,将其放到顺序的位置上。

2. 实现流程

  1. 找到数组中最小的那个元素
  2. 将它和数组的第一个元素交换位置
  3. 在剩下的元素中找到最小的元素
  4. 将它与数组的第二个元素交换位置

3.算法图解

选择排序 选择排序

红色表示当前最小值,黄色表示已排序的序列,蓝色表示当前位置。

4.代码实现

void selection_sort(int arr[],int len) {

    int min_key,temp;
    for (int i = 0; i < len; i++) {
        min_key = i;
        for (int j = i + 1; j < len; j++) {
            if (arr[j] < arr[min_key]) {
                min_key = j;
            }
        }
        temp = arr[min_key];
        arr[min_key] = arr[i];
        arr[i] = temp;
    }
}

5.时间复杂度

最差时间复杂度 O( n^2 )
最优时间复杂度 O( n^2 )
平均时间复杂度 O( n^2 )

最差空间复杂度 O( n ),需要辅助空间O(1)

就算数组之前是排好序的,选择排序依然也需要同样时间,并不会缩短排序时间

相关文章

  • 1.选择排序

    选择排序算法描述: 文字描述:一个元素个数为n的数组,循环n-1次,在循环中,将未排序元素的第一个元素(为选定的元...

  • 1.选择排序

    1. 概念 不断的选择剩余元素中的最小者,将其放到顺序的位置上。 2. 实现流程 找到数组中最小的那个元素 将它和...

  • 数据结构之排序

    选择排序1.直接选择排序 原理直接选择排序过程直接选择排序过程 实现: DataWrap.java来模拟待排序的数...

  • 排序方法(冒泡、选择、插入、递归)

    1.冒泡排序 2.选择排序 选择排序优化 3.插入排序 4.快速排序

  • 常见的排序算法(1)

    要点 冒泡排序 选择排序 插入排序 希尔排序 1. 冒泡排序 2.选择排序 3. 插入排序 4.希尔排序

  • 排序一:冒泡、插入、选择

    文章结构 概述 冒泡排序 插入排序 选择排序 1. 概述 常见的排序算法有:冒泡排序、插入排序、选择排序、归并排序...

  • python排序算法

    1.冒泡排序 2.选择排序

  • 常用排序(收藏)

    1.排序分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择...

  • 几个简单排序算法流程图

    1.冒泡排序: 2.选择排序: 3.计数排序:

  • 选择排序-c语言描述

    选择排序分简单选择排序与堆排序两种,先介绍简单选择排序。1.简单选择排序在未排序的序列中找到最小(大)元素,存放到...

网友评论

      本文标题:1.选择排序

      本文链接:https://www.haomeiwen.com/subject/dudcjttx.html