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

基本排序之选择排序

时间:2018-01-25 00:10:02      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:div   namespace   nbsp   sort   include   bsp   return   type   16px   

选择排序:

概述:

(1) 将0到N-1位置上最小的数与0位置处的数交换;

(2) 将1到N-1 位置上最小的数与1位置处的数交换;

(3)以此类推,一直到N-1位置处结束,完成排序。

算法稳定性:

  不稳定算法。

时间复杂度:

  O(N2)

代码:

#include <iostream>
using namespace std;

template<typename T>
void SelectionSort(T array[],int length)
{
    if (length < 2)
        return;
    int i = 0, j = 0;
    for (i = 0; i < length; i++)
    {
        int min = i;                //每次找到最小值所对应的下标
        for (j = i+1; j < length; j++)
        {
                        //如果其它元素比当前最小值小,那么将更小的元素下标赋值给min
            if (array[min] > array[j])
            {
                min = j;
            }
        }
                //最小值下标对应为min,将最小值与i位置交换
        int temp = array[i];
        array[i] = array[min];
        array[min] = temp;
    }
        
}

int main()
{
    int array[10] = {3,1,4,8,-34,-32,43,1,2,-1};
    SelectionSort(array, 10);
    for (int i = 0; i < 10; i++)
    {
        cout << array[i] << " " ;
    }
    return 0;
}

 

基本排序之选择排序

标签:div   namespace   nbsp   sort   include   bsp   return   type   16px   

原文地址:https://www.cnblogs.com/love-jelly-pig/p/8343529.html

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