简单选择排序

基本思想:设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。交换排序都不稳定。不稳定。

//
//  SelectSort.c
//  libin
//
//  Created by 李宾 on 16/5/9.
//  Copyright © 2016年 李宾. All rights reserved.
//

#include <stdio.h>
#define SWAP(a, b) {int temp; temp = a; a = b; b = temp; }
void Select_Sort(int *p, int n)
{
    for (int i = 0; i < n-1; i ++) {
        int min = i;
        for (int j = i + 1; j < n; j ++) {
            if(p[min] > p[j])
            {
                min = j;
            }
        }
        if (min != i) {
            SWAP(p[i], p[min]);
        }
    }
}

int main()
{
    int a[5] = { 5, 1, 13, 6, 24};
    Select_Sort(a, 5);
    for (int i = 0; i < 5; i ++) {
        printf("%d\t", a[i]);
    }
    printf("\n");
}

 

posted @ 2016-05-09 14:02  32ddd  阅读(109)  评论(0编辑  收藏  举报