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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。

不知道要实现哪个好?

7 个回复

倒序浏览
快速排序比大部分排序算法都要快。尽管我们可以在某些特殊的情况下写出比快速排序快的算法,但是就通常情况而言,没有比它更快的了。快速排序是递归的,对于内存非常有限的机器来说,它不是一个好的选择。
回复 使用道具 举报
杜工 发表于 2014-10-5 09:42
快速排序比大部分排序算法都要快。尽管我们可以在某些特殊的情况下写出比快速排序快的算法,但是就通常情况 ...

一听到递归都会有点头疼。。。
回复 使用道具 举报
nlogn的 快排,堆排,归并(最好情况)
快排在 数据一般大的时候 是个好选择,小数据一般的交换排序都挺好的。
回复 使用道具 举报
冒泡排序,选择排序,插入排序,堆排序,归并排序,快速排序,希尔排序,计数排序,桶排序,基数排序。
排列少量整数最快的是桶排序,比快速排序要快,实现如下:
  1.                 int[] example={21,73,90,1,2,11,32,25,25};//待排序的数组
  2.                 int[] bucket=new int[91];
  3.                 //如果给定数组中21出现1次,就把bucket[21]变为1,出现两次变为2
  4.                 for (int i=0;i<example.length;i++) {
  5.                         bucket[example[i]]++;
  6.                 }
  7.                 //按照bucket数组顺序输出即可(因为数组序号本来就已经排好序了),如果有重复就打印两次
  8.                 for (int i=0;i<bucket.length;i++) {
  9.                         for (int j=0;j<bucket[i];j++) {
  10.                                 System.out.print(i+" ");
  11.                         }
  12.                 }
复制代码
回复 使用道具 举报
快速把,
回复 使用道具 举报
我竟然也赤裸裸的抽到了这个题,可是视频上只讲了选择和冒泡排序,还得查阅资料整理了。
回复 使用道具 举报
有本书《数据结构》清华大学出版社,严蔚敏,第十章内部排序,十一章外部排序,进行了深入的讲解。计算机考研的重点
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马