数据结构————简单排序

/* 对顺序表L作简单选择排序 */

void SelectSort(SqList *L)

{

 int i,j,min;

 for(i=1;i<L->length;i++)

 { 

  min = i;       /* 将当前下标定义为最小值下标 */

  for (j = i+1;j<=L->length;j++) /* 循环之后的数据 */

  {

       if (L->r[min]>L->r[j])  /* 如果有小于当前最小值的关键字 */

             min = j;     /* 将此关键字的下标赋值给min */

  }

  if(i!=min)      /* 若min不等于i,说明找到最小值,交换 */

       swap(L,i,min);    /* 交换L->r[i]与L->r[min]的值 */

 }

}

爱炒股票短线的人,总是喜欢不断的买进卖出,想通过价差来实现盈利。但通常这种频繁操作的人,即使失误不多,也会因为操作的手续费和印花税过高而获利很少。还有一种做股票的人,他们很少出手,只是在不断的观察和判断,等到时机一到,果断买进或卖出。他们因为冷静和沉着,以及交易的次数少,而最终收益颇丰。 
        冒泡排序的思想就是不断的在交换,通过交换完成最终的排序,这和做股票短线频繁操作的人是类似的。我们可不可以像只有在时机非常明确到来时才出手的股票高手一样,也就是在排序时找到合适的关键字再做交换,并且只移动一次就完成相应关键字的排序定位工作呢?这就是选择排序法的初步思想。
        选择排序的基本思想是每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列的第i个记录。我们这里先介绍的是简单选择排序法。
        简单选择排序法(Simple Selection Sort)就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1≤i≤n)个记录交换之。

posted @ 2014-11-22 19:33  刘阳|lyang|yangakw  阅读(163)  评论(0编辑  收藏  举报