选择排序----select sort

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

时间复杂度为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;
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihenair/article/details/17070829
个人分类: Algorithm
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

选择排序----select sort

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭