收藏 分享(赏)

Java排序汇总.doc

上传人:fmgc7290 文档编号:7607401 上传时间:2019-05-22 格式:DOC 页数:9 大小:58.50KB
下载 相关 举报
Java排序汇总.doc_第1页
第1页 / 共9页
Java排序汇总.doc_第2页
第2页 / 共9页
Java排序汇总.doc_第3页
第3页 / 共9页
Java排序汇总.doc_第4页
第4页 / 共9页
Java排序汇总.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、JAVA 排序汇总 收藏 package com.wepull.jbs.lesson4;import java.util.Random* 排序测试类* 排序算法的分类如下:* 1.插入排序(直接插入排序、折半插入排序、希尔排序) ;* 2.交换排序(冒泡泡排序、快速排序) ; * * 3.选择排序(直接选择排序、堆排序) ;* * 4.归并排序;* 5.基数排序。 * 关于排序方法的选择:* (1)若 n 较小(如 n50),可采用直接插入或直接选择排序。* 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。* (2)若文件初始状态基本有序(

2、指正序),则应选用直接插人、冒泡或随机的快速排序为宜;* (3)若 n 较大,则应采用时间复杂度为 O(nlgn)的排序方法:快速排序、堆排序或归并排序。public class SortTest * 初始化测试数组的方法* return 一个初始化好的数组public int createArray() Random random = new Random();int array = new int10;for (int i = 0; i dataj + 1) / 交换相邻两个数swap(data, j, j + 1); else if (sortType.equals(“desc“) /

3、倒排序,从大排到小/ 比较的轮数for (int i = 1; i dataindex) index = j;/ 交换在位置 data.length-i 和 index(最大值)两个数swap(data, data.length - i, index); else if (sortType.equals(“desc“) / 倒排序,从大排到小int index;for (int i = 1; i 0 / 从右向左找第一个小于 x 的数if (i x) i+; / 从左向右找第一个大于 x 的数if (i 1; / 相当于 mid = (low + high)/ / 2,但是效率会高些if (d

4、ata datasetendIndex| beginIndex endIndex)return -1;if (data datasetmidIndex) return binarySearch(dataset, data, midIndex + 1, endIndex); else return midIndex;* 二分查找特定整数在整型数组中的位置(非递归)* 查找线性表必须是有序列表* paramdataset* paramdata* returnindexpublic int binarySearch(int dataset, int data) int beginIndex = 0;

5、int endIndex = dataset.length - 1;int midIndex = -1;if (data datasetendIndex| beginIndex endIndex)return -1;while (beginIndex 1; / 相当于 midIndex =/ (beginIndex +/ endIndex) / 2,但是效率会高些if (data datasetmidIndex) beginIndex = midIndex + 1; else return midIndex;return -1;public static void main(String ar

6、gs) SortTest sortTest = new SortTest();int array = sortTest.createArray();System.out.println(“=冒泡排序后(正序)=“);sortTest.bubbleSort(array, “asc“);System.out.println(“=冒泡排序后(倒序)=“);sortTest.bubbleSort(array, “desc“);array = sortTest.createArray();System.out.println(“=倒转数组后=“);sortTest.reverse(array);arra

7、y = sortTest.createArray();System.out.println(“=选择排序后(正序)=“);sortTest.selectSort(array, “asc“);System.out.println(“=选择排序后(倒序)=“);sortTest.selectSort(array, “desc“);array = sortTest.createArray();System.out.println(“=插入排序后(正序)=“);sortTest.insertSort(array, “asc“);System.out.println(“=插入排序后(倒序)=“);sor

8、tTest.insertSort(array, “desc“);array = sortTest.createArray();System.out.println(“=快速排序后(正序)=“);sortTest.quickSort(array, “asc“);sortTest.printArray(array);System.out.println(“=快速排序后(倒序)=“);sortTest.quickSort(array, “desc“);sortTest.printArray(array);System.out.println(“=数组二分查找=“);System.out.println(“您要找的数在第“ + sortTest.binarySearch(array, 74)+ “个位子。 (下标从 0 计算)“);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报