栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据结构6

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构6

数据结构6
  • 选择排序
  • 插入排序
  • 希尔排序

选择排序

选择排序也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]~arr[n-1]中选取最小值,与arr[i-1]交换,…, 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。

private void arrSort(int[]arr) {
	int temp=0;
	for (int i = 0; i < arr.length-1; i++) {
		for (int j = i+1; j < arr.length; j++) {
			if (arr[i]>arr[j]) {
				temp=arr[i];
				arr[i]=arr[j];
				arr[j]=temp;
			}
		}
	}
}

对于十万个数据有

插入排序

插入排序的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。

private void insertSort(int[] arr) {
	// TODO Auto-generated method stub
	int insertValue;
	int insertIndex;
	
	for (int i = 1; i < arr.length; i++) {
		insertValue=arr[i];
		insertIndex=i-1;
		while (insertIndex>=0&&insertValue 

如果待插入的数是最小的就需要对它之前所有的数进行向后移位
对于十万个数据有

经测试,插入排序比选择排序效率高很多

希尔排序

希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。
希尔排序法基本思想:
希尔排序是把记录按下标的一定步长分组,对每组使用直接插入排序算法排序;随着步长逐渐减少,每组包含的数越来越多,当步长减为1时,整个数组恰被分成一组,此时就完成了排序

	private void shellSort(int[] arr) {
		// TODO Auto-generated method stub
		int i,j,inc,key;
		for (inc = arr.length/2; inc>0; inc/=2) {
		// 每一趟进行排序
			for (i = inc; i < arr.length; i++) {
		// 记录下需要插入的数		
				key=arr[i];
		// 插入排序:对每一个需要插入的数,在该组循环中,如果小于arr[j-inc]并且未插入完全,把这个数之后的数全部向后移一位
				for (j = i; j >=inc&&key
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号