Java实现排序算法

九路 等级 949 0 0
标签: Java
  //冒泡排序
    public static void bubbleSort(int[] data) {
        int n = data.length;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (data[i] < data[j]) {
                    Utils.swap(data, i, j);
                }
            }
        }
    }
    //选择排序(选择一个最小的)
    public static void selectSort(int[] data) {
        int n = data.length;
        for (int i = 0; i < n; i++) {
            int min = i;
            for (int j = i + 1; j < n; j++) {
                if (data[j] < data[min]) {
                    min = j;
                }
            }

            Utils.swap(data, i, min);
        }
    }
   //插入排序
    public static void insertSort(int[] data) {
        int n = data.length;
        for (int i = 1; i < n; i++) {
            for (int j = i; j > 0; j--) {
                if (data[j] < data[j - 1]) {
                    Utils.swap(data, j, j - 1);
                }
            }
        }
    }
  //插入排序的改进
    public static void insertSort2(int[] data) {
        int n = data.length;
        for (int i = 1; i < n; i++) {
            int j = i;
            int e = data[j];
            for (; j > 0; j--) {
                if (e < data[j - 1]) {
                    data[j] = data[j - 1];
                } else {
                    break;
                }
            }
            data[j] = e;
        }
    }
//快速排序
  public static void quickSort(int[] data, int l, int r) {
        if (l < r) {
            int k = partition(data, l, r);
            quickSort(data, l, k - 1);
            quickSort(data, k + 1, r);
        }
    }

    private static int partition(int[] data, int l, int r) {
        int e = data[l];
        while (l < r) {
            //从后往前找比e小的数
            while (l < r && data[r] >= e)
                r--;
            Utils.swap(data, r, l);

            //从前往后找比e大的数
            while (l < r && data[l] <= e)
                l++;
            Utils.swap(data, r, l);
        }

        return l;
    }
收藏
评论区

相关推荐

JDK的下载与Java运行环境
**JDK简介** **什么是JDK** JDK是Java Development Kit的缩写,意思是Java开发工具包。JDK就好比作人的心脏,人没有了心脏,生命也就失去存在的意义。Java也一样,JDK就是它的心脏,是它的核心。JDK中不仅有Java运行环境(Java Runtime Environment),还有Java工具与Java的核心类库
Java 基础 SDK区别简介
1. Java SE(Java Platform,Standard Edition),应该先说这个,因为这个是标准版本。 Java EE (Java Platform,Enterprise Edition),java 的企业版本 Java ME(Java Platform,Micro Edition),java的微型版本。 1). JavaSE 可以
Java 高级应用编程 第一章 工具类
**一、Java API** **Java API简介** 1、API (Application Programming Interface) 应用程序接口 2、Java中的API,就是JDK提供的各种功能的Java类 3、JDK帮助文档   JAVA\_API\_CN.chm   官网地址http://www.oracle.com/tech
Java8 新特性
Java 8新特性 ========= 一、Java 8新特性简介 ------------- ### 1\. 简介 Java 8 ( 又称为jdk1.8 ) 是 Java 语言开发的一个主要版本。Java 8是orecle公司于2014年3月发布,可以看成是`自Java 5 以来最具革命性的版本`。Java 8为Java语言、编译器、类库、开发工具与
Java基础知识强化(用于自我巩固)以及审查
1\. Java 和 JDK 的关系 ------------------ JDK(Java Development Kit)Java 开发工具包,它包括:编译器、Java 运行环境(JRE,Java Runtime Environment)、JVM(Java 虚拟机)监控和诊断工具等 Java 则表示一种开发语言。 2. Java 程序是怎么执行的?
Java环境设置JDK为例
**环境设置分三步:安装前准备;安装;环境设置及测试。** * * * 一、安装前准备 了解一下需要安装的都是什么:Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。且Java包括三个平台版本,分别为Java SE
Java的JDK到底是什么?Java JDK小白安装教程(win10)!
小白的Java JDK安装教程(win10): ----------------------- Java JDK安装3步走,手把手教小白安装Java JDK! * **Java JDK**是干什么用的?如何安装? * 安装完 Java JDK 为什么要设置**环境变量**? * 如何设置Java JDK 环境变量 一、Java JDK 是干
java 配置環境
JAVA\_HOME                                      C:\\Java\\jdk1.8.0\_11 PATH:                                                 %JAVA\_HOME%\\bin;%JAVA\_HOME%\\jre\\bin; CLASSPATH: 
java基础知识随身记
2018年11月12日20:51:35 一、基础知识: 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。   java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类
java学习第一步
Java SE 磨刀不误砍柴工,工欲善其事必先利其器,咱们先搞好硬件配置,才能顺利的搞好Java学习 阶段一 1、认识Java 2、java发展史及用户 3、配置Java环境 4、JDK8下载安装 5、配置环境变量     JAVA\_HOME配置         java\_home配置两种方法:                 1、J
java的特性
java的特性 ======= 1、Java语言是简单的 2、Java语言是面向对象的 3、Java语言是分布式的 4、Java语言是健壮的 5、Java语言是安全的 6、Java语言是可移植性的 7、Java语言是解释型的 8、Java语言是多线程的 9、Java语言是动态的语言   **Java语言是简单的:**  
How to switch java version on ubuntu 20.04
* View all java versions lwk@qwfys:~$ update-java-alternatives --list java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.8.0-ope
Jmeter使用过程中遇到的问题
**问题一:** 已安装java,也配置了java环境变量,但打开jmeter时提示:Not able to find Java executable or version. **解决方法:** 在jmeter.bat文件前面加上以上两句: SET JAVA\_HOME=C:\\Program Files\\Java\\jdk1.7.0\_51 S
Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数
一、查看jdk安装目录 ----------- [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径
Inside Java Newscast #1 深度解读
本文是 的个人体验与解读。视频地址:⎯⎯⎯⎯⎯⎯ Chapters ⎯⎯⎯⎯⎯⎯ 0:00 Intro 0:57 Java 16 – Intro 1:16 Java 16 – Records 1:43 Java 16 – Type Pattern Matching 1:58 Java 16 – Sealed Classes Previ