选择排序

来源:互联网 发布:网络直销的特点 编辑:程序博客网 时间:2024/06/05 06:45

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其 最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

我的测试代码:

 1 /************************************************************************* 2     > File Name: bubble_sort.c 3     > Author: qiaoyihan 4     > Mail: yihan.ty@gmial.com  5     > Declare:   6     > Created Time: 2013年12月20日 星期五 22时20分53秒 7  ************************************************************************/ 8  9 #include<stdio.h>10 11 void sele_sort(int a[], int len)12 {13     int i,j,min,temp;14     for(i=0; i<len-1; i++){15         min = i;16         for(j=i+1; j<len; j++)17             if(a[j] < a[min])18                 min = j; 19         if(min != i){20             temp   = a[min];21             a[min] = a[i];22             a[i]   = temp;23         }24     }25 }26 27 void main(void)28 {29     int i;30     int num[] = {2, 6, 42, 67, 3, 12, 54};31     int len = sizeof(num)/sizeof(int);32     sele_sort(num, len);33     34     for(i=0; i<len; i++)35         printf("%d ", num[i]);36     printf("\n");37 }

0 0
原创粉丝点击