简单选择排序

王朝百科·作者佚名  2010-01-03  
宽屏版  字体:   |    |    |  超大  

基本思想:

设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(R,R[i+1],…,R[n]中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。

用C++描述算法如下:

template <class datatype >

void seqlist <datatype > ∷insertsort( )

{int i ,j,k;

datatype temp;

for(i =1;i<last;i++ )

{

k=i;

for(j=i+1;j<=last;j++)if(data[j]<data[k])k=j;

if(i!=k) //第i个元素与第k个元素交换

{

temp=data[k];

data[k]=data;

data=temp;

}

}

delete_ data(1);

};

数据结构课本上算法:

void Select_Sort(datatype R[ ],int n)

{/*对排序表R[1].....R[n]进行冒泡排法,n是记录个数*/

for(i=1;i<n;i++) /*做n-1趟选取*/

{k=i; /*在i开始的n-i+1个记录中选关键码最小的记录*/

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

if(R[j].key<r[k].key)

;k=j /*k中存放关键码最小记录的下标*/

if(i!=k) /*关键码最小的记录与第i个记录交换*/

{R[0]=R[k];

R[k]=R;

R= R[0];

}

}

}

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有