java实现排序过程演示程序

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:57:25
排序过程演示程序。对使用不同的算法,能实时演示在排序过程中,各数据的移动过程。
【功能提示】
(1) 至少实现直接插入排序、希尔排序和快速排序三种算法的排序过程。
(2) 输入数据可随机生成,也可由用户输入
(3) 用户可以控制排序过程的显示过程。例如定时运行、运行速度的快慢调节、单步运行等。
(4) 动画显示排序的过程。
源码要带注释~最好是原创的~~ 有意者可留下联系方式详谈~

insertion sort, heap sort and quick sort.. 我都写过,不过是C++版本哦,演示程序...模拟器吧? 自己写吧...又不难...是在不行自己去网上看看数据结构。 学程序抄代码永远学不会,理解了才记得住~

这样说吧。 insertion sort 也就是最笨的排序方法? 为什么呢?要插入就要把位置空出来,比如你插到第2个位置,你的array size 是10000, 就学要把后面9998个数据都往后挪一位,费时间,费内存
heap sort..把array 构建成 heap 的结构,这里你需要理解什么是 heap? 什么是 binary tree 2进制树, binary search tree.
quick sort. 大家用得最多的方法,但是worst case 可以达到O(n2)..
quick sort, 每次选择一个privot 然后由头到尾,同时由尾到头同时和选取的中间数比较,小的放前,大的放后。然后重复这个过程,也就是partation,直到每一部分都只有一个数,就排序好了。

经验告诉我们heapsort worst case O(nlongn) 比quick sort快,但是你也可以尝试random pivot version for quick.

之后你要想? 这些排序方法能排序link list么? 对于链表什么算法最快?

Array 是random index access
link list 只能靠指针一个一个挪

Array 搜索快..直接靠index 访问数据 O(1) 时间
Link list 插入和删除数据快 O(1) 时间

总之,不不想直接回答你的问题,或者帮你写个程序,因为这对你一点用都没有。你混过今天,混不过明天。 如果真的喜欢计算机,程序。 好好读读数据结构,算法设计, 正册表达式,等等..吃透...祝你好运。