排序算法之选择排序

选择排序介绍

它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

选择排序代码

/*

 *选择排序

 *参数说明

 *    a ---- 带排序数组

 *    n ---- 数组长度

 */

void select_sort(int a[], int n)

{

     int i;//有序区的末尾位置

     int j;//无序区的末尾位置

     int min;//无序区最小值元素位置

     for(i=0;i<n;i++)

    {  

         min=i;

         //找出a[i-1]....a[n-1]之间最小的元素,并赋值给min.

         for(j=i+1;j<n;j++)

        {

            if(a[j]<a[min])

            {

               min=j;

            }//end of if

        }// end of for2

        //若min!=i,则交换a[i]和a[min]

        if(min!=i)

        {

           swap(a[i],a[min]);

         }// end of if

    }

}

 

时间复杂度为O(n2)

 

posted @ 2015-10-12 17:28  戴小小呆  阅读(114)  评论(0)    收藏  举报