A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王大斌 中级黑马   /  2013-4-7 20:13  /  1614 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王大斌 于 2013-4-7 22:31 编辑

在java中,不同的排序一般在使用中不用考虑其效率吧,比方说我排1,2,3,4,5,7,0这几个数据,用冒泡也能,归并也能,一般在什么情况下用什么排序????

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

7 个回复

倒序浏览
一般情况下,不用,里边有工具,只要创建调用就可以了
回复 使用道具 举报
数据少的话用哪个排序都可以,不用考虑效率,如果处理大数据才考虑效率的
排序的种类很多,有插入排序,交换排序,选择排序,归并排序等
你说的冒泡排序属于交换排序中的一种。
至于哪个效率高,是需要考虑到很多情况的,包括时间复杂度、空间复杂度、算法稳定性、算法简单性等,根据这些情况的综合性来考虑。
对于我们初学者来说,现在先掌握那些基本排序的原理就行,这些排序属于算法与编程里的,如果基础打好后再去深入的学这些东西。
这是个人观点,不一定正确

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
我建议你去看一下算法设计之类的书籍,里面有具体说明。这些排序的算法要考虑到时间复杂度和空间复杂度等因素。骚年,加油哦!
回复 使用道具 举报
排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行时间中占有很大比重;并且排序本身对推动算法分析的发展也起很大作用。介绍常用的如下排序方法:
1、插入排序(直接插入排序、折半插入排序、希尔排序);
2、交换排序(起泡排序、快速排序);
3、选择排序(直接选择排序、堆排序);
4、归并排序;
5、基数排序;
a. 选取排序方法需要考虑的因素:
(1) 待排序的元素数目n
(2) 元素本身信息量的大小;
(3) 关键字的结构及其分布情况;
(4) 语言工具的条件,辅助空间的大小等。
b. 小结:
(1) n较小(n <= 50),则可以采用直接插入排序或直接选择排序。由于直接插入排序所需的记录移动操作较直接选择排序多,因而当记录本身信息量较大时,用直接选择排序较好。
(2) 若文件的初始状态已按关键字基本有序,则选用直接插入或冒泡排序为宜。
(3) n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序。 快速排序是目前基于比较的内部排序法中被认为是最好的方法。
(4) 在基于比较排序方法中,每次比较两个关键字的大小之后,仅仅出现两种可能的转移,因此可以用一棵二叉树来描述比较判定过程,由此可以证明:当文件的n个关键字随机分布时,任何借助于"比较"的排序算法,至少需要O(nlog2n)的时间。
(5) 当记录本身信息量较大时,为避免耗费大量时间移动记录,可以用链表作为存储结构

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
开发时用Arrays.sort();
回复 使用道具 举报
若还有问题,继续追问; 没有的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
陈丽莉 发表于 2013-4-7 20:47
若还有问题,继续追问; 没有的话,请将帖子分类改成【已解决】~

怎么改啊,找了半天
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马