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

排序二:选择排序

时间:2016-08-28 09:50:31      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

基本思想:

  每一趟(例如第i趟,i=0,1,2,...,n-2)在后面 n-i 个待排序的数据元素中选出关键字最小的元素,作为有序元素序列的第 i 个元素。

 

#include <stdio.h>

void println(int array[], int len)
{
    int i = 0;

    for (i = 0; i < len; i++) {
        printf("array[%d] = %d\n", i, array[i]);
    }
    printf("\n");
}

void swap(int array[], int i, int j)
{
    int temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}

void SelectionSort(int array[], int len)   // O(n*n)
{
    int i = 0;
    int j = 0;
    int k = -1;

    for (i = 0; i < len; i++) {
        k = i;
        for (j = i; j < len; j++) {
                if (array[k] > array[j) {
                        k = j;
                }
        }
        swap(array, i, k);
    }
}

int int main(int argc, char const *argv[])
{
    int array[] = {21, 25, 49, 25, 16, 8};
    int len = sizeof(array) / sizeof(*array);

    SelectionSort(array, len);

    println(array, len);

    return 0;
}

 

排序二:选择排序

标签:

原文地址:http://www.cnblogs.com/ronnydm/p/5814357.html

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