java排序算法(持续更新)
来源:互联网 发布:大数据人才需求 编辑:程序博客网 时间:2024/05/17 07:42
插入排序(O(n2)):
// 插入排序public static void insertionSort(int[] number){ int j; for(int p=1;p<number.length;p++){ int tmp=number[p]; for(j=p;j>0&&(tmp-number[j-1])<0;j--){ number[j]=number[j-1]; } number[j]=tmp; }}
希尔排序(O(n2)):略优于插入排序
// 希尔排序public static void shellSort(int[] data){ int j; for(int gap=data.length/2;gap>0;gap=gap/2){ for(int i=gap;i<data.length;i++){ int tmp=data[i]; for(j=i;j>=gap&&(tmp-data[j-gap])<0;j-=gap){ data[j]=data[j-gap]; } data[j]=tmp; }}}
堆排序(NlogN):
// 堆排序 //节点与根节点交换 private static void swapReferences(int[] data, int first, int second) { int tmp = data[first]; data[first] = data[second]; data[second] = tmp; }//得到当前结点的左孩子 private static int leftChild(int i) { return i * 2 + 1; }//排序 public static void heapSort(int[] data) { for (int i = data.length / 2 - 1; i >= 0; i--) { percDown(data, i, data.length); } for (int i = data.length - 1; i > 0; i--) { swapReferences(data, 0, i); percDown(data, 0, i); } }//当父节点小于子节点时,子节点与父节点交换 private static void percDown(int[] data, int i, int n){ int child; int tmp; for (tmp = data[i]; leftChild(i) < n; i = child) { child = leftChild(i); if (child != n - 1 && (data[child] - data[child + 1]) < 0) { child++; } if((tmp-data[child])<0){data[i]=data[child]; } else break; } data[i]=tmp;}
阅读全文
0 0
- java排序算法(持续更新)
- 回顾Java各大排序算法(持续更新)
- 排序算法(持续更新...)
- 排序算法持续更新(部分转载)
- Javascript排序算法(持续更新中...)
- 排序算法总结(持续更新中)
- 关于排序算法(持续更新)
- 算法(持续更新)For Java
- 十一种排序算法整理(JAVA实现,持续更新中)
- C语言版各种排序算法(持续更新中)
- 经典排序算法代码实现(持续更新... 求补充)
- 查找""排序""简单数学计算" "简单算法"[Java实现](数据结构和算法)(复习)(持续更新
- 经典排序算法综述 持续更新中
- 常用排序算法总结。【力求持续更新】
- 排序算法的学习笔记(持续更新)
- 几种排序算法 持续更新
- Java随笔(6):数据结构+算法(持续更新)
- java数据结构和算法目录(持续更新中)
- 安徽籍巨型计算机之父—慈云桂
- VS快捷键
- JPA之JPA中的一对多双向关联
- ACM-11月19日周日周末训练心得
- 新公司新入手的一个新项目的心路历程
- java排序算法(持续更新)
- 2017.11.19
- 二级列表实现购物车的效果
- CentOS 6.5下MySQL 5.7.20主从复制架构配置
- linux(vi)常用命令
- Dijkstra(邻接表+优先队列)
- 仿QQ空间打赏功能实现
- Linux常用命令
- HDU1114 Piggy-Bank(完全背包)