选择排序

上一次我们谈到了冒泡排序,今天我们谈下选择排序。
与冒泡排序相比,选择排序的平均时间复杂度比冒泡排序稍高。
基本思想:
每一趟从待排序的元素中选出最小(或者最大)的一个元素顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
选择排序是不稳定的排序方法,N个记录的文件的直接选择排序可经过N-1趟直接选择排序得到有序结果。

示例如下:
定义数组a[]={13,4,8,2,11,670}

第一趟:a[]={0,4,8,2,11,67,13}

第二趟: a[]={0,2,8,4,11,67,13}

第三趟:a[]={0,2,4,8,11,67,13}

第四趟:a[]={0,2,4,8,11,67,13}

第五趟:a[]={0,2,4,8,11,67,13}

第六趟:a[]={0,2,4,8,11,13,67}

算法描述如下:

int a[n];//定义数组,长度为n
int i,j,t;

for(i=0;i<n-1;i++)
{
   for(j=i+1;j<n;j++)
    {
      if(a[i]>a[j])
       {
         t=a[i];
         a[i]=a[j];
         a[j]=t;
       }
    }
}

 

posted @ 2008-12-10 18:40  dwwwing  阅读(214)  评论(0编辑  收藏  举报