查询的时候 按照 sort排序。
点击上移或者下移 就是把 sort数值进行更新,临近数值的交换,
另外还要判断是否最顶或者最低。
<a href="do.aspx?action=Order&type=Down&id=4">下移</a>
<a href="do.aspx?action=Order&type=Up&id=4">上移</a>
<%
Dim ordertype,id
id=request("id")
ordertype=request("type")
If ordertype="Down" Then
sql="select top 2 sort from Class where id <= "&id&" order by sort desc"
Elseif ordertype="Up" Then
sql="select top 2 sort from Class where id >= "&id&" order by sort asc"
End If
set rs=server.createobject("Adodb.recordset")
rs.open sql,conn,1,3
Dim i
i= 0
If rs.recordcount=1 Then
If ordertype="Down" Then
response.Write("已经是最底部了。")
Elseif ordertype="Up" Then
response.Write("已经是最顶部了。")
End If
Else
Dim temp_this,temp_next
temp_this=rs("sort")
rs.movenext
temp_next=rs("sort")
rs.MovePrevious
rs("sort")=temp_next
rs.movenext
rs("sort")=temp_this
rs.update
End If
rs.close
set rs=nothing
%>
上面所列的几种排序方法的速度都很块,但快速排序,归并排序,基数排序和希尔排序都是在排序结束后才能确定数据元素的全部顺序,而无法知道排序过程中部分元素的有序性.而堆排序则每次输入一个最大(或最小)的元素,然后对堆进行调整,保证堆顶的元素总是余下元素中最大(或最小)的.根据题意,只要选取前10个最大的元素,故采用堆排序方法是合适的.欢迎分享,转载请注明来源:内存溢出
评论列表(0条)