经典排序算法

冒泡排序

在这里插入图片描述

public class BubbleSort {

        //冒泡排序
        public static void main(String[] args){
            int[] nums = {6,2,13,7,4};
            int[] numx = bubblest(nums);
            System.out.println(Arrays.toString(numx));
        }

        public static int[] bubblest(int[] Arrays){
            int cen = 0;
            for(int i=0;i< Arrays.length-1;i++){//大循环
                //五个数据,循环四轮,循环完成最大数据自动归位
                //每次大循环结束都会有一个最大或最小值下沉到底
                boolean judge = false;
                for(int j=0;j< Arrays.length-i-1;j++){//小循环
                    if(Arrays[j]>Arrays[j+1]){//升序
                        cen = Arrays[j];
                        Arrays[j] = Arrays[j+1];
                        Arrays[j+1] = cen;
                        judge = true;
                    }
                }
                if(judge = false){
                    break;
                }
            }
            return Arrays;
        }
    }

选择排序

在这里插入图片描述

import java.util.Arrays;
//选择排序
public class SelectSort{
	public static void main(String[] args){
		int[] nums = {1,2,3,4,5};
		int[] numx = selectsort(nums);
		System.out.print(Arrays.toString(numx));
	}
	public static int[] selectsort(int[] arrs){
		int str;//中间容器
		int minindex;//索引保存
		for(int i=0;i<arrs.length-1;i++){
			minindex = i;
			for(int j=i+1;j<arrs.length;j++){
				//j=i+1每轮比较都从以第一个数为基准往后依次比较取出最小值并保存其索引
				if(arrs[minindex]<arrs[j]){
					minindex = j;//相邻两数依次比较,并存储最大值索引   降序   
				}
			}
			str = arrs[minindex];
			arrs[minindex] = arrs[i];
			arrs[i] = str;
		}
		return arrs;
	}
	
}

插入排序

在这里插入图片描述


import java.util.Arrays;

//插入排序
public class InsertionSort{
	public static void main(String[] args){
		int[] nums = {1,2,3,4,5};
		int[] numx = ins(nums);
		System.out.print(Arrays.toString(numx));
	}
	
	static int[] ins(int[] arr){
		int current;//当前排序元素
		int preIndex;//已排序元素索引
		for(int i=1;i<arr.length;i++){
			current = arr[i];//抽出当前比较值
			preIndex = i-1;
			while(preIndex>=0 && current>arr[preIndex]){//降序
				arr[preIndex + 1] = arr[preIndex];//已排序元素向后移
					//以current为基准抽出,则该位置索引空出,
					//即可将所有已排序元素向后移动一位,直至找到当前current对应位置
				preIndex--;
			}
			arr[preIndex+1] = current;
			//将当前排序元素插入到preIndex后面的索引位置
			//preIndex是比较后发现不满足条件的值索引
		}
		
		
		return arr;
	}
	
	
	
	public static int[] insertionsort(int[] arrs){
		int ct;
		for(int i=1;i<arrs.length;i++){
			for(int j=i;j>0;j--){
				if(arrs[j]>arrs[j-1]){//降序
					ct = arrs[j];
					arrs[j] = arrs[j-1];
					arrs[j-1] = ct;
				}else{
					break;
				}
			}
		}
		return arrs;
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿仔牛奶_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值