首页 > 编程语言 > 详细

Java回顾--jdk jre jvm 三个常见排序算法

时间:2019-09-06 22:22:53      阅读:128      评论:0      收藏:0      [点我收藏+]

1、JRE、JDK、JVM:

  JVM: Java Virtual Machine,Java虚拟机,是Java能够跨平台的核心所在,它只认识 .class文件,且同一段Java代码在编译后生成的.class文件都是一样的,jvm识别.class文件中的字节码指令并调用操作系统上的API(应用程序接口)完成动作,因此,编译一次,处处运行。

  JRE:  Java Runtime Environment,Java运行时环境。它主要包含jvm 的标准实现和 Java 的一些基本类库。

  JDK: Java Development Kit,Java 开发工具包。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具,打包工具等。

  三者之间的关系:使用JDK开发完成的java程序,通过编译工具把.java文件编译成.class文件,JVM先识别.class文件再调用API完成指令,在JRE(Java运行环境)运行,输出结果。

2、八大基础数据类型:

数据类型 占用空间(字节数) 默认值
byte 1 (byte)0
short 2 (short)0
char 2 \u0000(null)
int 4 0
float 4 0.0f
double 8 0.0d
long 8 0L
boolean - false

 

 

 

 

  

 

 

 

 

 

 

 3、冒泡排序、选择排序、快速排序:

  1、冒泡排序:

 1 public class BubbleSort{
 2       public  void  bubbleSort (Intrger[] arr) {
 3            for (int i=0; i < n; i++ ) {
 4                for (int j = 0; j < n- i - 1) {
 5                     if (arr [ j ] > arr[ j+1]) {
 6                          int temp=arr [ j ];
 7                          arr[ j ]=arr[ j+1 ];
 8                          arr[ j+1 ]=temp;
 9                     }
10                 }
11            } 
12       }          
13 }

  

  2、选择排序:

  

public class SelectionSort {
 
    public static void SelectSort(int[] arr){
        for(int i=0; i<arr.length-1; i++) {
            int index = i;
            for (int j = i; j < arr.length; j++) {
                if (arr[j] < arr[index]) {
                    index = j;
                }
            }
            if(arr[index]!=arr[i]) {
                int temp=arr[index];
                arr[index]=arr[i];
                arr[i]=temp;
            }
        }
    }
   
}

 

  3、快速排序:

  

public class QuickSort {

    //对外开放调用的方法
    public static <T extends Comparable<? super T>> void sort(T[] arr) {
        sort(arr, 0, arr.length - 1);
    }
    
    private static <T extends Comparable<? super T>> void sort(T[] arr, int left, int right) {
        if (left >= right) return;
        int p = partition(arr, left, right);
        sort(arr, left, p - 1);
        sort(arr, p + 1, right);
    }

    //核心方法
    private static <T extends Comparable<? super T>> int partition(T[] arr, int left, int right) {
        T base = arr[left];  //从数组中选择的基准值
        int j = left;
        for (int i = left + 1; i <= right; i++) {
            if (base.compareTo(arr[i]) > 0) {
                j++;
                swap(arr, j, i);
            }
        }
        swap(arr, left, j);
        return j;
        //返回一躺排序后基准值的下角标
    }

    private static void swap(Object[] arr, int i, int j) {
        if (i != j) {
            Object temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

    private static void printArr(Object[] arr) {
        for (Object o : arr) {
            System.out.print(o);
            System.out.print("\t");
        }
        System.out.println();
    }

    public static void main(String args[]) {
        Integer[] arr = {3, 5, 1, 7, 2, 9, 8, 0, 4, 6};
        printArr(arr);
        //3  5  1  7  2  9  8  0  4  6
        sort(arr);
        printArr(arr);
        //0  1  2  3  4  5  6  7  8  9
    }

}

 

  

 

 

Java回顾--jdk jre jvm 三个常见排序算法

原文:https://www.cnblogs.com/cicada-luo/p/11478086.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!