用三种方法实现几个数的排序:冒泡排序,选择排序,调用Java里的库函数

1、 冒泡排序:顾名思义,就是将小的数一步一步往上冒,大的数一个个往下沉,下面是自己写的对冒泡排序的理解,字丑将就看一下吧。

2、选择排序:以从小到大为例,定义一个变量min_inter,用于记录最小值的下标,找到最小的数放在第0位,第二小放在第1位,后面依次。

3、直接调用:Arrays.sort(num3);需要导入import java.util.Arrays;

4、插入排序:思路:每一步将一个待排序的记录,按其排序码大小插入到前面已排序的序列的合适位置,直到全部排序好,其耗时与冒泡排序差不多。

5、希尔排序:

下面是代码:

 1 package SortingWay;
 2
 3 import java.util.Arrays;
 4
 5 /**
 6 *排序法,冒泡,选择
 7 *从小到大
 8 *@author:Archer-LCY
 9 *@date:2018年1月16日下午12:07:09
10 */
11 public class InsertSort{
12     public static void main(String[] args) {
13         final int N=50000;//常量
14         int [] num1=new int[N];
15         int [] num2=new int[N];
16         int [] num3=new int[N];
17         int [] num4=new int[N];
18         for(int i=0;i<num1.length;i++) {
19             num1[i]=(int)(Math.random()*N*10);//随机生成N个数,为比较时间效率,N在这先取50000
20             num2[i]=num1[i];
21             num3[i]=num1[i];
22             num4[i]=num4[i];
23         }
24         long star_time=System.currentTimeMillis();//计算开始时间
25         //方法一:冒泡
26         for(int i=0;i<num1.length;i++) {//冒泡排序
27             for(int j=0;j<num1.length-i-1;j++) {
28                 if(num1[j]>num1[j+1]) {
29                     int temp=num1[j];//在java中可以临时定义一个变量,若前面一个数比后面大两个数交换位置
30                     num1[j]=num1[j+1];
31                     num1[j+1]=temp;
32                 }
33             }
34         }
35         long end_time=System.currentTimeMillis();
36         System.out.println("冒泡排序耗时:"+(end_time-star_time)+"毫秒");//计算结束时间,注意end_time-star_time一定要加(),否则有错
37
38         //方法二:选择
39         long star_time2=System.currentTimeMillis();
40                 for(int i=0;i<num1.length-1;i++) {//选择排序
41                     int min_inter=i;//记录该组比较中最小数的下标
42                     for(int j=i+1;j<num1.length;j++) {
43                         if(num1[i]>num1[j]) {
44                             min_inter=j;
45                         }
46                     }
47                     //找到最小的数后放入第0个,第二小放在第1个,后面依次
48                     int temp=num2[i];
49                     num2[i]=num2[min_inter];
50                     num2[min_inter]=num2[i];
51                 }
52         long end_time2=System.currentTimeMillis();
53         System.out.println("选择排序耗时:"+(end_time2-star_time2)+"毫秒");
54         //方法三:调用java库里的函数,也是速度最快的
55         long star_time3=System.currentTimeMillis();
56         Arrays.sort(num3);//一句解决,需要导入import java.util.Arrays;
57         long end_time3=System.currentTimeMillis();
58         System.out.println("Arrays.sort()耗时:"+(end_time3-star_time3)+"毫秒");
59
60         //方法四:插入排序
61         long star_time4=System.currentTimeMillis();
62         for(int i=0;i<num4.length;i++) {
63             int temp=num4[i];
64             int j=i-1;
65             for(;j>=0&&temp<num4[j];j--) {//将大于temp的数后移
66                 num4[j+1]=num4[j];
67             }
68             num4[j+1]=temp;
69         }
70         long end_time4=System.currentTimeMillis();
71 //        for(int i=0;i<num.length;i++) {
72 //            System.out.println(num4[i]);
73 //        }
74         System.out.println("插入排序耗时:"+(end_time-star_time)+"毫秒");
75
76 //        //输出,为计算比较三种排序的时间效率,先不打印
77 //        for(int i=0;i<num3.length;i++) {
78 //            if(i%10==0)
79 //                System.out.println();
80 //            else
81 //                System.out.print("\t");
82 //            System.out.print(num3[i]);
83 //        }
84
85
86     }
87 }

下面是这三种排序算法所耗时间:

从运行结果上来看,冒泡排序所耗时间最长,其次是选择排序,冒泡排序和选择排序相比较,冒泡排序时间更长主要是因为冒泡排序交换次数更多,所耗时间自然就更长了。

转载于:https://www.cnblogs.com/archer-lcy/p/8304902.html

四种排序方法用java实现相关推荐

  1. 数组的四种排序方法介绍

    最近在学习和练习一些算法方面的知识,发现在java中运用数组进行排序一般就四种方法:快速排序法.冒泡法.选择排序法.插入排序法.我们只要掌握这四种排序方法,基本上就能解决所有的排序问题.所以我接下来就 ...

  2. JAVA中运用数组的四种排序方法

    JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进 ...

  3. java 数组排序论文_Java中运用数组的四种排序方法

    标签: <1>利用Arrays带有的排序方法快速排序 import java.util.Arrays; 2 public class Test2{ public static void m ...

  4. Java中运用数组的四种排序方法_JAVA中运用数组的四种排序方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 快速排序 public class TestMain { public static void main(String[] args) { Integer ...

  5. php常见的四种排序方法

    前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序.  $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 ...

  6. 郑州尚学堂:JAVA常用4种排序方法

    JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 当然 程序中最简单的使用就是:快速排序和冒泡排序,插入排序的使用更具有技巧性,选择排序则过于复杂,冗杂 ...

  7. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法

    好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...

  8. java的四种输入方法,你会几种?

    java的输入方法最常见的就是Scanner的方法,我经过查阅一些资料发现了输入方法原来还有那么多种,可以玩出不少花样,下面是我总结出的四种输入方式,有需要的可以拿去 1.Scanner相关的功能 S ...

  9. java中的五种排序方法_用Java排序的五种有用方法

    java中的五种排序方法 Java排序快速概述: 正常的列表: private static List VEGETABLES = Arrays.asList("apple", &q ...

最新文章

  1. 最小割 ---- 二分图最大独立集(集合冲突模型) ---- 骑士共存 方格取数(网络流24题)
  2. C#注解属性的感想一:
  3. 【剑指offer-Java版】31连续子数组的最大和
  4. 网络嗅探混杂模式与非混杂模式的区别
  5. 格子大法与换入换出分析
  6. [architecture]-ARMV8的The current Program Counter (PC)介绍
  7. 【哲学】《哲学的故事》笔记
  8. 【BZOJ4771】七彩树 主席树+树链的并
  9. 递归-递归实现数字累加
  10. mint mvc文件上传功能——使用篇
  11. 区块链技术怎么构架落地应用?
  12. sql 占比计算_数据库索引的优化及SQL处理过程(建议收藏)
  13. k8s核心技术-Helm(安装和配置仓库)---K8S_Google工作笔记0045
  14. 8086cpu学习笔记(4):指令系统
  15. excel数据分析 - 17个计算统计类函数
  16. 列宽一字符等于多少厘米_excel里面的列宽和行高单位是多少?多少等于1厘米?怎么对比的?...
  17. ubuntu22.04 耳机没声音 [已解决]
  18. 机器学习和人工智能的关系是什么?
  19. OSPF NBMA实验(单播、广播)
  20. C# 合并、拆分PPT幻灯片

热门文章

  1. XP 安装Oralce 10g 数据库
  2. 笔记:2016-06-02
  3. ZF1.* 愤怒小鸟系列二:快速自定义创建MVC
  4. IT第三阶段?“智慧的运算”的未解之谜
  5. Angularjs 中的 controller
  6. Java 生产者和消费者问题
  7. 加载checkpoint问题
  8. 「Python」pandas入门教程
  9. 自学问题 zx yl
  10. c# DirectoryInfo 类和 FileInfo 类