选择排序----select sort

原创 2013年12月02日 13:25:05

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

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

选择排序(select sort)

**选择排序** 一,综述 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排...
  • ic_tv
  • ic_tv
  • 2015-07-01 23:40
  • 231

简单选择排序(Simple Select Sort)

简单选择排序(Simple Select Sort)

数据结构 - 树形选择排序 (tree selection sort) 详解 及 代码(C++)

树形选择排序 (tree selection sort) 详解 及 代码本文地址: http://blog.csdn.net/caroline_wendy算法逻辑: 根据节点的大小, 建立树, 输出树...

选择排序(Selection Sort)优化

选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。它是不稳定的...

选择排序(selection sort)

选择排序是从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。 寻找最小的元素需要一个循环的过程,而排序又是需要一个循环的...

selection sort(选择排序)

selection sort(选择排序) 是一种很常见的O(n^2)的排序方法。下面给出算法的伪码及时间复杂度分析 伪代码: 如上图所示,伪码的每一步后面都有一个基本运算执行次数的统计...

选择排序(Selection Sort)

维基百科:http://zh.wikipedia.org/wiki/选择排序 算法思想: 给定一个待排序的数组A[1..n],以升序为例,我们先找出其中最小的元素,和A[1]交换;然后找出次小的元...

选择排序算法(Selection Sort)

选择排序算法的java实现。

选择排序(Selection Sort)

1、概述选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。排序...

简单选择排序(Simple Selection Sort)

基本思想:排序时找到合适的关键字再做交换,并且只移动一次就完成相应关键字的排序定位工作。即通过n-i次关键字间的比较,从n-i+1(i=1,2,...n-1)个记录中选出关键字最小的记录,并和第i(1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)