Java学习笔记03 简单排序

冒泡排序

依次遍历数组元素,找出数组中最大值或者最小值,将其放在数组的头部或者尾部,然后将剩下的的元素再次遍历,找出其中的最大值或者最小值,进行同样的操作;

代码实现:

package com.briup.test;
import java.util.Arrays;
public class Bubbling{
    public static void main (String[] args){
        int arr[]={4,9,2,5,2};
        System.out.println(Arrays.toString(arr));
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        for(int s:arr){
            System.out.print(s+" ");
        }
    }
}

选择排序

将数组元素第一位当作数组元素最小值或者最大值,记录数值和元素下标,然后与其他元素进行比较,如果有比这个数小或者大的数,那么他们数值交换,元素下标也进行替换。

代码实现:

package com.briup.test;
import java.util.Arrays;
public class Choose{
    public static void main(String[] args){
        int arr[]={8,6,9,3,5};
        System.out.println(Arrays.toString(arr));
        for(int i=0;i<arr.length;i++){
            int min = arr[i];
            int index = i;
            for(int j=i+1;j<arr.length;j++){
                if(arr[index]>arr[j]){
                    min=arr[j];
                    index=j;
                }
            }
            int temp=arr[i];
            arr[i]=min;
            arr[index]=temp;
        }
        for(int s:arr){
        System.out.print(s+" ");
        }
    }
}

插入排序

首先数组第一位元素与第二位进行比较(这里按照从小到大排序进行说明),如果第二位元素比第一位元素小,那么两个元素位置进行交换;接着第三位元素数值与前两位数值依次比较,如果比第二位元素的数值小,那么交换位置,接着在与第一位数值进行比较,如果也比第一位小,那么继续交换位置;数组中的剩下的元素依次与前面的元素进行比较,直到最后一位数不再交换位置。

代码实现:

package com.briup.test;

import java.util.Arrays;

public class Insert{
    public static void main(String[] args){
        int arr[]={3,2,7,5,4};
        System.out.println(Arrays.toString(arr));
        for(int i=1;i<arr.length;i++){
            for(int j=i;j>0;j--){
                if(arr[j]<arr[j-1]){
                    int temp =arr[j-1];
                    arr[j-1]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        for(int s:arr){
            System.out.print(s+" ");
        }
    }
}

 

数组下标

这里要说明的是,元素的下标都是从0开始,例如一个数组[2,5,3],其中2的下标不是1而是0,在计算机中都是从零开始;

栈与堆

简单来说栈与堆都是用进行计算机存储,不同的是存储的类型不同,栈用来用来存储局部变量表、操作数栈、动态链接、方法出口等信息,堆存储对象,对象包含类的信息,指向方法区,栈可以存储地址指向堆空间,因为栈的存储空间十分有限。

代码示例

package com.briup.test;

public class Test{
    public static void main (String[] args){
        Person ps=new Person();
        int a =10;
        ps.age=20;
        ps.chage(a,ps);
        System.out.println(a+","+ps.age);
    }
}

class Person{
    int age;
    static void chage(int a1,Person ps){
        a1=11;
        ps.age=21;
        System.out.println(a1+","+ps);
    };
}

这里不做过多说明,后期会对栈与堆进行更详细的说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值