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

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。

快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。

冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。

选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。

<1>利用Arrays带有的排序方法快速排序

 1 import java.util.Arrays; 2 public class Test2{ 3         public static void main(String[] args){ 4                 int[] a={5,4,2,4,9,1}; 5                 Arrays.sort(a);  //进行排序 6                 for(int i: a){ 7                         System.out.print(i); 8                 } 9         }10 }

<2>冒泡排序算法

 1  public static int[] bubbleSort(int[] args){//冒泡排序算法 2                 for(int i=0;i<args.length-1;i++){ 3                         for(int j=i+1;j<args.length;j++){ 4                                 if (args[i]>args[j]){ 5                                         int temp=args[i]; 6                                         args[i]=args[j]; 7                                         args[j]=temp; 8                                 } 9                         }10                 }11                 return args;12         }

<3>选择排序算法

 1 public static int[] selectSort(int[] args){//选择排序算法 2                 for (int i=0;i<args.length-1 ;i++ ){ 3                         int min=i; 4                         for (int j=i+1;j<args.length ;j++ ){ 5                                 if (args[min]>args[j]){ 6                                         min=j; 7                                 } 8                         } 9                         if (min!=i){10                         int temp=args[i];11                         args[i]=args[min];12                         args[min]=temp;        13                         }14                 }15                 return args;16         }

<4>插入排序算法

 1  public static int[] insertSort(int[] args){//插入排序算法 2                 for(int i=1;i<args.length;i++){ 3                         for(int j=i;j>0;j--){ 4                                 if (args[j]<args[j-1]){ 5                                         int temp=args[j-1]; 6                                         args[j-1]=args[j]; 7                                         args[j]=temp;         8                                 }else break; 9                         }10                 }11                 return args;12         }

以上就是java中的四种排序方法。不同的方法效率不一样,下面是不同的算法的比较和数据交换时的大O表示。

冒泡排序:比较O(N2) 数据交换O(N2)

选择排序:比较O(N2) 数据交换O(N)

插入排序:比较O(N2) 复制数据O(N)

在实际应用中,我们要尽量选择效率高的算法。

=========================================================

转载自:http://www.cnblogs.com/zxl-jay/archive/2011/09/24/2189711.html

=========================================================

时间: 2024-10-18 17:27:27

JAVA中运用数组的四种排序方法的相关文章

Java基础知识强化12:Java中运用数组的四种排序方法

1.使用JavaApi文档中的Arrays类中的sort()进行快速排序 首先我们直接看代码如下: 1 package himi.text; 2 3 import java.util.Arrays; 4 5 public class TestDemo01 { 6 7 public static void main(String[] args) { 8 int[] array = {2,12,3,44,27}; 9 /** 10 * 利用使用JavaApi文档中的Arrays类中的sort()进行

JAVA基础学习笔记_四种排序方法

默认从小到大排序 ①快速法排序 第一轮:第一个数依次与后面的数比较,若第一个数较大,则两数互换位置,即最小的数被放在了第一位 for(i=0;i<a.length-1;i++) //控制比较轮次 for(j=i+1;j<a.length;j++) //总是与其后面的数依次比较 if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } ②选择法排序 第一轮:1-n数,求出最小数,然后与第一个数互换位置 for(i=0;i<a.length-1;i++)

JAVA中集合输出的四种方式

在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public static void main(String[] args) throws Exception { Set<Person> javaProgramers = new HashSet<Person>(); javaProgramers.add(new Person("aaron&qu

java中内部类的创建四种情况,三种方式,及内部数据访问权限

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式. 第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,public 类型的访问权限.外部类为非静态声明和权限如下: package com; public class Test1 { //@author 张春蕾 private class Name{ private int i =1; public int s = 2; protected int m

java中实现多线程的两种基本方法

java中实现多线程有两种基本方法,一种是继承Thread, 另一种是实现Runnable接口. 但是因为java中子类只能继承一个父类,如果采用继承Thread类,就不能继承其他类,很受限制. 以下是采用继承Thread类的例子: public class MyThreadTest{ public static void main(String[] args){ MyThread amythread1=new MyThread("my thread 1"); MyThread amy

JS 中检测数组的四种方法

今天和大家分享一下 JS 中检测是不是数组的四种方法,虽然篇幅不长,不过方法应该算是比较全面了. 1. instanceof 方法 instanceof 用于检测一个对象是不是某个类的实例,数组也是一种对象所以也可以利用 instaceof 来进行判断. let arr = [1, 2, 3]; console.log(arr.instanceof(Array)); // true 这种方法在只有一个全局作用域的环境下是可以的,但是如果一个网页中包含多个框架,那么就会存在不同的全局环境,不同的环

java 完全二叉树的构建与四种遍历方法

本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下. 有如下的一颗完全二叉树: 先序遍历结果应该为:1  2  4  5  3  6  7 中序遍历结果应该为:4  2  5  1  6  3  7 后序遍历结果应该为:4  5  2  6  7  3  1 层序遍历结果应该为:1  2  3  4  5  6  7 二叉树的先序遍历.中序遍历.后序遍历其实都是一样的,都是执行递归操作. 我这记录一下层次遍历吧:层次遍历需要用到队列,先入队在出队,每次出队的元素检查是其是

JAVA中实现多线程的四种方式

Java中多线程实现方式主要有四种:1<继承Thread类.2<实现Runnable接口.3<实现Callable接口通过FutureTask包装器来创建Thread线程.4<使用ExecutorService.Callable.Future实现有返回结果的多线程. 其中前两种方式线程执行完后都没有返回值,后两种是带返回值的. 1.继承Thread类创建线程 Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例.启动线程的唯一方法就是通过Thread类的s

Java中创建数组的几种方法

public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intValue=arr[5]; //System.out.println(intValue); //创建数组的第二种方法 int[] x={1,2,3,4}; //System.out.println(x[1]); //创建数组的第三种方法. int[] y= new int[]{1,2,3,4,5}; int m=0; boolean