java排序算法(插入排序,冒泡排序,选择排序)

java排序算法(插入排序,冒泡排序,选择排序)

先了解原理,然后自己跟着敲一下,加深印象
CMD编译命令:javac -encoding utf-8 SortList.java && java SortList

代码如下:
import java.util.Arrays;


public class SortList{
    public static void main(String[] args){
        int[] list = {1,2,8,5,6,7,6,5,10};
        System.out.println(insertSort(list)); //直接排序
        System.out.println(populeSort(list)); //冒泡排序
        System.out.println(selectSort(list)); //冒泡排序
    }

    // 直接插入排序是将一个待排序的记录,插入到前面已经排好序的有序序列中去,如此反复循环,直到全部排好顺序为止。
    public static String insertSort(int[] list){
        int i,j;
        int temp;
        for (i= 1;i<list.length;i++){
            j=i;
            temp = list[i];
            while(j>0 && temp < list[j-1]){
                list[j] = list[j-1];
                j--;
            }
            list[j] = temp;
        }
        return Arrays.toString(list);
    }

    // 冒泡排序是对相邻的元素进行两两比较,较大的数下沉,较小的数上浮,最终达到有序。
    public static String populeSort(int[] list){
        for(int i=1;i<list.length;i++){
            for(int j = 0;j<list.length -i;j++){
                if(list[j]>list[j+1]){
                    int temp  = list[j+1];
                    list[j+1] = list[j];
                    list[j] = temp;
                }
            }
        }
        return Arrays.toString(list);
    }

    //简单选择排序是每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,属于不稳定排序。
    public static String selectSort(int[] list){
        int aIndex = 0;
        for (int i= 0 ; i<list.length;i++){
            aIndex = i;
            for(int j=i+1; j<list.length;j++){
                if(list[j]<list[aIndex]){
                    aIndex = j;
                }
            }
            if (aIndex != i){
                int temp = list[i];
                list[aIndex] = list[i];
                list[i] = temp;
            }
        }
        return Arrays.toString(list);
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值