还有链表实现方式,就是添加一个next表项,里面存储顺序下一个的id(id是不可或缺的,一个唯一性标示这个你知道吧?可以直接用数据库支持的autoincrease),上下修改的时候就要复杂一些,比如3移到1,首先找到3的前驱2,然后2的next指向4,然后把0的next指向3,;
比较2种方式,数组方式的查找复杂度是O(1),链表是O(n),数组优于链表;
但是数组已知索引的插入复杂度是O(n),链表是O(1),链表比较好;
综上,如果算法基础好可以用链表,水平一般就用数组,另外链表可能还要优化一下,在建表的时候要考虑在额外的配置文件里面存储好头结点。
如果你不清楚一个方法的用法,首先应该想到查API文档啊:内容如下:
int
executeUpdate(String
sql)
执行给定
SQL
语句,该语句可能为
INSERT、UPDATE
或
DELETE
语句,或者不返回任何内容的
SQL
语句(如
SQL
DDL
语句)。
-------------------------
但我不理解的是,
rs=stmt.executeQuery("Select
*
From
StuInfo
ORDER
BY
Num")
这已经执行查询了你还用executeUpdate(String
sql)做什么啊?
进行数据更新?
我觉得你下一步应该是输出排序后的字段吧?
while(rs.next()){……}这样吧?
两种方式:
直接在mysql中排序, 查看一下SQL语句的order by 使用
查询出来的数据,利用排序算法,在内存中排序。什么插入排序,冒泡排序,快速排序等等。
个人建议,直接在数据库中排序,简单高效。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)