<HEAD>
<TITLE></TITLE>
<script>
function text()
{
return "yes"
}
window.onload=function()
{
document.getElementsByTagName("p")[0].innerText=text()
}
</script>
</HEAD>
<BODY>
<p>text()</p>
</BODY>
</HTML>
文件的顺序存储结构表示#define n l00 //假设的文件长度,即待排序的记录数目
typedef int KeyType; //假设的关键字类型
typedef struct{ //记录类型
KeyType key; //关键字项
InfoType otherinfo;//其它数据项,类型InfoType依赖于具体应用而定义
}RecType;
typedef RecType SeqList[n+1];//SeqList为顺序表类型,表中第0个单元一般用作哨兵
冒泡
void BubbleSort(SeqList R)
{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序
int i,j;
Boolean exchange; //交换标志
for(i=1i<ni++){ //最多做n-1趟排序
exchange=FALSE; //本趟排序开始前,交换标志应为假
for(j=n-1j>=i;j--) //对当前无序区R[i..n]自下向上扫描
if(R[j+1].key<R[j].key){//交换记录
R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元
R[j+1]=R[j];
R[j]=R[0];
exchange=TRUE; //发生了交换,故将交换标志置为真
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
} //BubbleSort
快速选择
void SelectSort(SeqList R)
{
int i,j,k;
for(i=1i<ni++){//做第i趟排序(1≤i≤n-1)
k=i;
for(j=i+1j<=nj++) //在当前无序区R[i..n]中选key最小的记录R[k]
if(R[j].key<R[k].key)
k=j//k记下目前找到的最小关键字所在的位置
if(k!=i){ //交换R[i]和R[k]
R[0]=R[i];R[i]=R[k];R[k]=R[0]; //R[0]作暂存单元
} //endif
} //endfor
} //SeleetSort
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)