1 / 11
文档名称:

java排序算法.doc

格式:doc   大小:99KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java排序算法.doc

上传人:dreamzhangning 2018/11/25 文件大小:99 KB

下载得到文件列表

java排序算法.doc

相关文档

文档介绍

文档介绍:Java排序算法
1)分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(箱排序、基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
1)选择排序算法的时候
;  ;   
一般来说,当数据规模较小时,应选择直接插入排序或冒泡排序。任何排序算法在数据量小时基本体现不出来差距。考虑数据的类型,比如如果全部是正整数,那么考虑使用桶排序为最优。  考虑数据已有顺序,快排是一种不稳定的排序(当然可以改进),对于大部分排好的数据,快排会浪费大量不必要的步骤。数据量极小,而起已经基本排好序,冒泡是最佳选择。我们说快排好,是指大量随机数据下,快排效果最理想。而不是所有情况。
3)总结:
——按平均的时间性能来分:
     1)时间复杂度为O(nlogn)的方法有:快速排序、堆排序和归并排序,其中以快速排序为最好;
     2)时间复杂度为O(n2)的有:直接插入排序、起泡排序和简单选择排序,其中以直接插入为最好,特别是对那些对关键字近似有序的记录序列尤为如此;
     3)时间复杂度为O(n)的排序方法只有,基数排序。
当待排记录序列按关键字顺序有序时,直接插入排序和起泡排序能达到O(n)的时间复杂度;而对于快速排序而言,这是最不好的情况,此时的时间性能蜕化为O(n2),因此是应该尽量避免的情况。简单选择排序、堆排序和归并排序的时间性能不随记录序列中关键字的分布而改变。
——按平均的空间性能来分(指的是排序过程中所需的辅助空间大小):
     1) 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1);
     2) 快速排序为O(logn ),为栈所需的辅助空间;
     3) 归并排序所需辅助空间最多,其空间复杂度为O(n );
     4)链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。
——排序方法的稳定性能:
     1) 稳定的排序方法指的是,对于两个关键字相等的记录,它们在序列中的相对位置,在排序之前和经过排序之后,没有改变。
     2) 当对多关键字的记录序列进行LSD方法排序时,必须采用稳定的排序方法。
     3) 对于不稳定的排序方法,只要能举出一个实例说明即可。
     4) 快速排序,希尔排序和堆排序是不稳定的排序方法。
4)插入排序:
包括直接插入排序,希尔插入排序。
直接插入排序: 将一个记录插入到已经排序好的有序表中。
      1, sorted数组的第0个位置没有放数据。
      2,从sorted第二个数据开始处理:
              如果该数据比它前面的数据要小,说明该数据要往前面移动。
              首先将该数据备份放到 sorted的第0位置当哨兵。
              然后将该数据前面那个数据后移。
              然后往前搜索,找插入位置。
              找到插入位置之后讲第0位置的那个数据插入对应位置。
O(n*n), 当待排记录序列为正序时,时间复杂度提高至O(n)。
希尔排序(缩小增量排序 diminishing increment sort):先将整个待排记录序列分割成若干个子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。
插入排序Java代码:
public class InsertionSort {
//   插入排序:直接插入排序,希尔排序   
     public void straightInsertionSort(double [] sorted){
         int sortedLen= ;
         for(int j=2;j<sortedLen;j++){
              if(sorted[j]<sorted[j-1]){
                   sorted[0]= sorted[j];//先保存一下后面的那个                 
                   sorted[j]=sorted[j-1];// 前面的那个后移。
                   int insertPos=0;
                   for(int k=j-2;k>=0;k-

最近更新

2025年一级注册建筑师之设计前期与场地设计考.. 221页

2025年事业单位招聘职业能力倾向测验考试题库.. 110页

2025年二级建造师之二建建筑工程实务考试题库.. 162页

2025年一级注册建筑师之建筑结构考试题库含答.. 136页

2025年一级注册建筑师之建筑结构考试题库带答.. 135页

2025年历届职业健康安全审核知识考题 16页

2025年事业单位招聘职业能力倾向测验考试题库.. 111页

2025年一级注册建筑师之建筑结构考试题库附参.. 136页

2025年清明节家乡扫墓作文600字(共22篇) 38页

2025年事业单位招聘职业能力倾向测验考试题库.. 112页

2025年二级建造师之二建建筑工程实务考试题库.. 162页

2025年一级造价师之建设工程造价管理考试题库.. 170页

2025年一级造价师之建设工程造价管理考试题库.. 170页

2025年厂区电动大门设备制作安装工程承包合同.. 10页

2025年二级建造师之二建建筑工程实务考试题库.. 163页

2025年一级注册建筑师之设计前期与场地设计考.. 220页

2025年初级银行从业资格之初级个人贷款考试题.. 167页

2025年二级建造师之二建建筑工程实务考试题库.. 163页

2025年二级建造师之二建建筑工程实务考试题库.. 162页

2025年一级造价师之建设工程造价管理考试题库.. 169页

2025年二级建造师之二建建筑工程实务考试题库.. 162页

2025年二级建造师之二建建筑工程实务考试题库.. 161页

2025年一级注册建筑师之设计前期与场地设计考.. 221页

七年级班主任教师工作计划范文 4页

2025年清明节之旅作文(共16篇) 15页

2025年一级注册建筑师之设计前期与场地设计考.. 223页

2025年一级注册建筑师之设计前期与场地设计考.. 221页

幼儿园燃气事故应急方案 5页

兼职体育教练聘用合同 5页

危货运输应急演练总结报告 5页