Java排序
来源:互联网 发布:编写php用什么软件 编辑:程序博客网 时间:2024/05/17 11:37
排序作为一种常见的,在衡量器优缺点时,基本是从三个方面着手的,分别为
- 时间复杂度:它主要是分析关键字的比较次数和记录的移动次数。
- 空间复杂度:分析排序算法中需要多少辅助内存。
- 稳定性:若两个记录A和B的关键字值相等,但是排序后A,B的先后次序保持不变,则称这种排序算法是稳定的;反之,就是不稳定的。
就现有的排序算法来看,排序大致可分为内部排序和外部排序。如果整个排序过程不需要借助外部存储器(如磁盘等),所有排序操作都是在内存中完成,这种排序就被称为内部排序。
如果参与排序的数据元素非常多,数据量非常大,计算无法把整个排序过程放在内存中完成,必须借助于外部存储器(如磁盘),这种排序就被称为外部排序。
外部排序最常用算噶是多路归并排序,即将原文件分解称多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序,接下来再对多个有序的子文件进行归并排序。
就常用的内部排序算法来说,可以分为以下几类:
- 选择排序(直接选择排序,堆排序)
- 交换排序(冒泡排序,快速排序)
- 插入排序(直接插入排序,折半插入排序,Shell排序)
- 归并排序
- 桶式排序
- 基数排序
先引入一个main方法和工具方法:
public static void main(String[] args)
{
int[] a={12,15,1,18,2,35,30,11};
maoPaoSort(a);
quickSort(a,0,a.length-1);
insertSort(a);
choiceSort(a);
System.out.println(Arrays.toString(a));
}
//交换数组的两个元素的位置
public static void swap(int[] data, int i, int j) {
if (i == j) {
return;
}
data[i] = data[i] + data[j];
data[j] = data[i] - data[j];
data[i] = data[i] - data[j];
}
- java排序----鸡尾酒排序
- java排序--归并排序
- java排序-希尔排序
- Java 排序 - 冒泡排序
- Java排序 Collections排序
- Java排序--插入排序
- 排序-选择排序-Java
- 排序-插入排序-Java
- 排序-归并排序-Java
- 排序-快速排序-Java
- java排序 -- 堆排序
- JAVA排序
- JAVA排序
- java排序
- java排序
- java排序
- JAVA排序
- java 排序
- shell脚本-头文件名大小写纠正
- DrawerLayout的使用
- 霍夫变换
- Map
- java的foreach简单理解
- Java排序
- Django Ajax跨域问题解决方案
- 面试记录第十四节——(什么是oom)
- 音视频播放器QtAV的编译和使用!
- 详解JVM工作原理和特点
- Java 接口(interface)的用途和好处
- 最小二乘法
- 2017.10.12. DFS求树的直径
- 机器学习十大经典算法