java 代码
- public class Sort {
-
-
-
-
-
- public static int[] sort(int[] data) {
- int temp;
- for (int i = 1; i < data.length; i++) {
- for (int j = i; (j > 0) && (data[j] > data[j - 1]); j--) {
-
- temp = data[j];
- data[j] = data[j - 1];
- data[j - 1] = temp;
- }
- }
- return data;
- }
-
-
-
-
-
- public static int[] maopao(int[] data) {
- int temp;
- for (int i = 0; i < data.length - 1; i++) {
- for (int j = i + 1; j < data.length; j++) {
- if (data[i] < data[j]) {
- temp = data[i];
- data[i] = data[j];
- data[j] = temp;
- }
- }
- }
- return data;
- }
-
-
-
-
-
-
- public static int[] xuanze(int[] data) {
- int temp;
- for (int i = 0; i < data.length; i++) {
- int lowIndex = i;
- for (int j = data.length - 1; j > i; j--) {
- if (data[j] > data[lowIndex]) {
- lowIndex = j;
- }
- }
- temp = data[i];
- data[i] = data[lowIndex];
- data[lowIndex] = temp;
- }
- return data;
- }
-
-
-
-
- public static int[] sort2(int[] data) {
- for (int i = data.length / 2; i > 2; i /= 2) {
- for (int j = 0; j < i; j++) {
- insertSort(data, j, i);
- }
- }
- insertSort(data, 0, 1);
- return data;
- }
-
- private static void insertSort(int[] data, int start, int inc) {
- int temp;
- for (int i = start + inc; i < data.length; i += inc) {
- for (int j = i; (j >= inc) && (data[j] > data[j - inc]); j -= inc) {
- temp = data[j];
- data[j] = data[j - inc];
- data[j - inc] = temp;
- }
- }
- }
-
- public static void main(String args[]) {
- Sort s = new Sort();
- int str[] = {1, 5, 9, 2, 56, 89, 98, 74, 52, 65, 30, 25, 78, 10, 12, 31, 25, 46};
-
- Long star = System.currentTimeMillis();
- for (int j = 0; j < 100000; j++)
- str = s.maopao(str);
- Long end = System.currentTimeMillis();
- for (int i = 0; i < str.length; i++) {
- System.out.print(str[i] + " ");
- }
- System.out.println("冒泡排序所花时间: " + (end - star));
-
-
- star = System.currentTimeMillis();
- for (int j = 0; j < 100000; j++)
- str = s.sort(str);
- end = System.currentTimeMillis();
- for (int i = 0; i < str.length; i++) {
- System.out.print(str[i] + " ");
- }
- System.out.println("插入法排序所花时间: " + (end - star));
-
-
- star = System.currentTimeMillis();
- for (int j = 0; j < 100000; j++)
- str = s.sort2(str);
- end = System.currentTimeMillis();
- for (int i = 0; i < str.length; i++) {
- System.out.print(str[i] + " ");
- }
- System.out.println("Shell排序法排序所花时间: " + (end - star));
-
-
- star = System.currentTimeMillis();
- for (int j = 0; j < 100000; j++)
- str = s.xuanze(str);
- end = System.currentTimeMillis();
- for (int i = 0; i < str.length; i++) {
- System.out.print(str[i] + " ");
- }
- System.out.println("选择法排序所花时间: " + (end - star));
- }
- }
比较结果是:
98 89 78 74 65 56 52 46 31 30 25 25 12 10 9 5 2 1 冒泡排序所花时间: 125
98 89 78 74 65 56 52 46 31 30 25 25 12 10 9 5 2 1 插入法排序所花时间: 15
98 89 78 74 65 56 52 46 31 30 25 25 12 10 9 5 2 1 Shell排序法排序所花时间: 63
98 89 78 74 65 56 52 46 31 30 25 25 12 10 9 5 2 1 选择法排序所花时间: 94
分享到:
相关推荐
基于C语言的几种排序方法比较.pdf
C++中的几种排序方法介绍,并给出相关代码。包括冒泡排序法,简单排序法,希尔排序法和快速排序法
Java几种排序方法:冒泡排序,插入法排序,快速排序,选择排序.
javascript 的几种排序方法
提供了Java实现几种常见排序方法和原理介绍
常见的几种排序方式,包括选择排序,冒泡排序,快速排序,希尔排序,堆排序,插入排序。vs2008实现,对话框方式,主要实现字符串的由小到大...点击“几种排序方法.vcproj“运行。字符集使用多字节集,不能用UNICODE。
数据结构报告c++,简单选择排序,冒牌排序,插入排序,快速排序,两路合并排序,堆排序,几种排序方法的比较,有详细的源代码和实验报告
几种不同的排序方法的算法比较,插入排序,快速排序,选择排序,堆排序等
List类几种排序方法比较灵活 可以根据自己的需要 选用合适的方法
几种常见的排序方法 1. 选择排序法基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 2.插入排序(Insertion Sort)的基本思想是...
关于数据的几种排序算法的程序对比分析,结合具体案例
主要是源代码 包括几种排序方法 选择 基数 快速排序 及栈的运用。
此程序是数据结构中的几种常见的排序方法,包括选择插入等常见排序
(1)直接插入排序算法验证。 (2)快速排序算法验证。 (3)直接选择排序算法验证。 几种简单的排序算法代码
php实现的几种排序方法,包括插入排序,选择排序,冒泡排序、快速排序
给出了几种排序方法的具体实现,包括插入、冒泡、合并、快排等。
几种排序算法的比较,vb期末编程作业