选择排序

 说明: 这一段在复习数据结构和算法,有一些零星笔记,欢迎指正。

 
  • 选择排序:
    • 描述:选出数组中最小的元素,与数组的第一个元素交换;然后选择出数组中次小的元素,与与第二个元素交换,直到完成
    • 选择排序需要比较N(N-1)/2次,即N2次,而交换则只需要N-1
    • 对于是否已经排好序,或者随机文件,所花费的时间是一致的,即执行时间具有强迫性
    • 选择排序应用在数据项比较大,键比较小的情况下,因为此时移动元素花费时间较多,而对于其他排序算法,元素移动频繁的多
    • 程序:

template <class Item>
void sort(Item a[], int left, int right)
{
  
int i, j;
  
int min;
  
for(i=left; i<right; i++)
  
{
    min 
= i;
    
for(j=i+1; j<=right; j++)
    
if(a[j]<a[min]) min=j;
      exch(a[i],a[min]);
  }
   
}

posted on 2005-03-22 16:31  马维峰  阅读(1100)  评论(0编辑  收藏  举报