Java数组常用简单排序算法

排序要求

已知数组arr[]={5,6,9,2,4,3,1,8,7},要求按从小打到排序,排序后为{1,2,3,4,5,6,7,8,9}。

Java的三种简单排序算法

冒泡排序
冒泡排序(Bubble Sort)是一种计算机科学领域的较简单的排序算法。
原理:
1.比较相邻的元素,如果前一个元素比后一个元素大,就交换两个元素的位置。
2.对每一对相邻元素做同样的工作,从第一对元素开始到结尾的最后一对元素,最终最后位置的元素就是最大值。

选择排序
选择排序是一种更加简单直观的排序方法。
原理
1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引处的值是最小值,最后可以找出最小值所在的索引。
2.交换第一个索引处和最小值所在的索引处的值。

插入排序
插入排序(Insertion Sort)是一种简单直观且稳定的排序算法。
原理
1.把所有的元素分为两组,已经排序和未排序的。
2.找到未排序的组中的第一个元素,向已经排序的组中进行插入。
3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他元素向后移动一位。

具体实现

1.首先创建class类。
2.定义数组

public static void main(String[] args) {
        int [] arr={5,6,9,2,4,3,1,8,7};//定义一个待排序的数组;
    }

3.根据题目所描述从Java三种常用排序算法中选择合适的排序算法。
下面是满足上诉要求的三种算法(做题时选择一种即可)
(1).冒泡排序

public static void Bubble(int [] arr){  //定义方法实现冒泡排序;
    int t;
    for(int i=0;i<arr.length;i++){
        for(int j=0;j<arr.length-1;j++){
            if (arr[j]>arr[j+1]){   //比较当前元素和下一个元素的大小;
                t=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=t;
            }
        }
    }
    for (int i=0;i<arr.length;i++){     //输出结果;
        System.out.print(arr[i]+" ");
    }
}

(2).选择排序

public static void Selection(int [] arr){   //定义方法实现选择排序;
        int min;        //用于存储最小值元素索引;
        int t;
        for(int i=0;i<arr.length-1;i++){
            min=i;
            for (int j=i+1;j<arr.length;j++){     //寻找最小值元素及其索引;
                if(arr[min]>arr[j]){
                    min=j;
                }
            }
            t=arr[i];
            arr[i]=arr[min];
            arr[min]=t;
        }
        for (int i=0;i<arr.length;i++){		//输出结果
            System.out.print(arr[i]+" ");
        }
    }

(3).插入排序

public static void Insertion(int [] arr){   //定义方法实现插入排序;
        int t;
        for(int i=1;i<arr.length;i++){
            for(int j=i-1;j>=0;j--){    //倒叙比较元素大小实现插入
                if(arr[j+1]<arr[j]){
                    t=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=t;
                }
            }
        }
        for (int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }

4.通过主函数调用方法实现具体效果

public static void main(String[] args) {
        int [] arr={5,6,9,2,4,3,1,8,7};//定义一个待排序的数组;
        Bubble(arr);        //调用冒泡排序方法;
        System.out.println();
        Selection(arr);     //调用选择排序方法;
        System.out.println();
        Insertion(arr);     //调用插入排序方法;
    }

5具体排序后实现效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值