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++)        //控制轮次
{
    k=i;                         //假设为最小数
    for(j=i+1;j<a.length;j++)
       if(a[k]>a[j]) k=j;        //求出当前轮次最小数
        if(i!=k)
        {  
            t=a[i];
            a[i]=a[k];
            a[k]=t;
        }
}

③冒泡法排序

第一轮:第一个数和第二个数比较,大的放后面,然后第二个数(较大的)再与第三个数比较,就这样最大的数浮到了最上层(最后一个数的位置)

for(i=0;i<a.length-2;i++)       //控制比较轮次
    for(j=0;j<a.length-1;j++)   //控制比较范围
        if(a[j]>a[j+1])
        {  
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }

④插入法排序

第一轮:第二个数与第一个数比较,若第二个数较大则放在第一个数后面,否则放在第一个数的位置,第一个数向前一位

for(i=1;i<a.length;i++)      //依次放剩下的n-1个数
{
    for(j=0;j<i;j++)         //依次和已排好序的数比较,从小到大
        if(a[i]<a[j]) break; //找到它应该插入的位置
    x=a[i];              //防止出现两数互换的情况下覆盖当前数
    for(t=i-1;t>=j;t--)
        a[t+1]=a[t];     //在确定位置及其后面的数依次向前移一位
    a[j]=x;              //当前数放在确定位置上
}

如果只是一维数组排序的话,Arrays.sort方法可以轻松解决。

时间: 2024-10-12 08:40:49

JAVA基础学习笔记_四种排序方法的相关文章

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

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来. 选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组. 插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序.下面我就将他们的实现方法一一详解供大家参考. <1>利用Arrays带有的排序方法快

Java基础学习笔记(四)

21.构造方法(续):分类: 隐式构造方法:如果在一个类中,没有手动编写构造方法,则系统会提供一个默认的无参的构造方法 显式构造方法:如果在一个类中,手动编写构造方法,则系统不会提供默认的无参的构造方法 建议:当手动编写构造方法时,建议先编写无参构造方法22.引用数据类型 String 用户自定义类型,如:Teacher.Student 注意:引用数据类型赋值两种方式:赋值对象,赋值为null 小知识点:当一个对象作为另一个对象的属性或者当一个对象中的属性是引用数据类型23.空指针异常 java

Java基础学习笔记十四 常用API之基本类型包装类

基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等.那么,想实现字符串与基本数据之间转换怎么办呢?Java中提供了相应的对象来解决该问题,基本数据类型对象包装类: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基础-学习笔记(四)-流程控制

1.顺序结构  if语句 if(表达式){执行语句块}(变量=布尔表达式?语句1:语句2 表达式为真则执行语句1,反之执行语句2) if(表达式){执行语句块} else {} if(表达式1){执行语句块} else if(表达式2){}else if语句也可以嵌套在if语句中,else与上文中最近的if匹配 2.选择结构  switch语句 看着下面的代码,也真是醉了,我咋能写出这样的~不过从中也可以吸取点教训,case后面跟的只能是常量,switch后面的表达式可以接受byte.short

java基础学习笔记day01

java基础学习笔记day01 1.软件开发: 软件:按照特定顺序组织的计算机数据和指令的集合 开发:软件的制作过程 软件开发:借助开发工具和计算机语言制作软件 2.java概述: java之父:詹姆斯·高斯林 JDK:java开发环境 jre:java运行环境 JVM:java虚拟机 java跨平台是因为,JVM能在不同的平台运行,JVM是跨平台的 JavaSE:标准版 JavaME:手机端,物联网 JavaEE:企业版,互联网项目 3.java语言特点: 简单性 解释性 面向对象 高性能 分

黑马程序员--java基础学习笔记5

黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

JAVA基础学习笔记(1)

今天第一天开始学JAVA,时间:2014年6月17日 学习内容:1.java环境的架设 2.JAVA基本数据类型 1.JAVA环境的架设       1.要先去下载JDK,下载地址 2.安装完成后,设置环境变量 1.1环境变量的设置        1.右键-我的电脑-属性-高级-环境变量-系统变量,找到PATH,在里面加入jdk里bin目录的地址 如:c:\java\bin; 2.新建-名为classpath,值为. 1.2测试JAVA是否配置正确        1.在cmd里面输入javac.