码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法——直接选择排序

时间:2017-07-11 11:13:51      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:sort   希尔   元素   div   排序算法   堆排序   遍历   void   实现   

  直接选择排序每一趟排序都会从未排序的序列中选择出最小的元素来,然后跟未排序序列的第一个元素交换。这样经过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)。直接选择排序同样是一种不稳定的排序算法(不稳定的排序算法有:快排、希尔排序、直接选择排序、堆排序)。

 

排序算法——直接选择排序

标签:sort   希尔   元素   div   排序算法   堆排序   遍历   void   实现   

原文地址:http://www.cnblogs.com/greedyco/p/7149209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!