zoukankan      html  css  js  c++  java
  • 排序算法——直接选择排序

      直接选择排序每一趟排序都会从未排序的序列中选择出最小的元素来,然后跟未排序序列的第一个元素交换。这样经过n-1趟排序后,每趟排序选择出的

    最小元素便成了有序的序列。

      算法实现如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    void SelectSort(int A[],int n)
    {
        int i, j, index, temp;
        for(i = 0; i < n-1; i++)        // 进行n-1趟排序
        {
            index = i;                  // 辅助变量index用来存储最小元素的下标
            for(j = i+1; j <= n-1; j++) // 遍历未排序的序列
            {
                if(A[j] < A[index])
                    index = j;
            }
            if(index != i)              // 将选择出的最小元素与未排序序列中的第一个元素交换
            {
                temp = A[index];
                A[index] = A[i];
                A[i] = temp;
            }
        }
    }

      直接选择排序的时间复杂度为O(n2),空间复杂度为O(1)。直接选择排序同样是一种不稳定的排序算法(不稳定的排序算法有:快排、希尔排序、直接选择排序、堆排序)。

  • 相关阅读:
    2019年下半年学习总结
    要看的积累
    【长期积累】Java
    【长期积累】数据库
    一些知识总结
    一些小总结
    优秀前端框架Semantic UI
    windows nodejs express的安装
    形象的讲解angular中的$q与promise(转)
    centos6.5 install mongodb
  • 原文地址:https://www.cnblogs.com/greedyco/p/7149209.html
Copyright © 2011-2022 走看看