【HTML】编写一个函数,实现并将一组数据进行排序,并在程序中调用该函数,将排序结果输出。

【HTML】编写一个函数,实现并将一组数据进行排序,并在程序中调用该函数,将排序结果输出。,第1张

文件的顺序存储结构表示

#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

如果是ASP或碧郑御ASP.NET实现你的需求很容易,但一定要用纯HTML加javascript实现起来就比较繁了,但并不是不能实现,只能给你个思路:

1、定义一个二维数据,用于缓存table中的数据,用javascript循环悔岩读取table中tr的数据,读取数据可以使用:

s[0][0]=document.getElementById("table1").rows.item(0).cells.item(0).innerText

2、编写一段排序函数,根据你的要求,对二维数组进行排序;

3、丛知再次循环将数组内容写入table,写入过程刚好与上述过程相反

document.getElementById("table1").rows.item(0).cells.item(0).innerText=s[0][0]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12248563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存