关闭

选择排序----select sort

575人阅读 评论(0) 收藏 举报
分类:

选择排序是一种原地排序算法。

时间复杂度为O(n2)


Array start from 1 to size, A[1...size]

伪代码

selection-sort(A, size)

1    for i <- 1 upto size -1

2        min = i

3        for j <- i+1 upto size

4            if a[j] < a[min]

5                min <- j

6        if (i != min)

7            then exchange a[i] <-> a[min]


#include <stdio.h>

void swp(int *a, int *b)
{
	*a = *a^*b;
    *b = *a^*b;
    *a = *a^*b;
}

int main(void)
{
    int i;
    int a[10] = {
		8, 5, 2, 6, 9, 3, 1, 4, 0, 7
	};

    for (i = 0; i < 9; i++) {
        int j;
		int min = i;

        for (j = i+1; j < 10; j++) {
			if (a[j] < a[min]) {
				min = j;
			}
		}
        if (i != min) {
            swp(&a[i], &a[min]);
		}
	}

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

	return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:660572次
    • 积分:8472
    • 等级:
    • 排名:第2283名
    • 原创:154篇
    • 转载:111篇
    • 译文:65篇
    • 评论:81条
    文章分类
    最新评论