栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java排序算法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java排序算法

Java排序算法一

文章目录

Java排序算法一前言一、冒泡排序二、选择排序三、插入排序四、快速排序


前言

Java小白分享学习算法

一、冒泡排序

冒泡排序(Bubble Sort)就是把小的元素往前调或者把大的元素往后调从而实现从小到大的排序。
依次比较相邻的两个元素大小,若前一个元素大于后一个元素,则交换两个元素,每次比较一轮将最大的一个元素归位(即放到最后)。

import java.util.Arrays;


public class example1 {
    public static void main(String[] args) {
        int[] bubbleNums = {25, 63, 78, 45, 132, 7};
        System.out.println("排序之前:" + Arrays.toString(bubbleNums));

        bubbleSort(bubbleNums);
        System.out.println("排序之后:" + Arrays.toString(bubbleNums));

    }
        public static void swap(int[]nums,int i){
            int temp=nums[i+1];
            nums[i+1]=nums[i];
            nums[i]=temp;
        }
        private static void bubbleSort(int[] nums){
            for(int i=1;i nums[j + 1])
                        swap(nums, j);
                }
            System.out.print("第" + i + "次排序:");
            System.out.println(Arrays.toString(nums));
        }
        }
    }

运行效果

二、选择排序

选择排序(Selection Sort)是一种简单直观的排序算法。首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。

import java.util.Arrays;

public class example2 {
    public static void main(String[] args) {
        int[] selectNums = {25, 63, 78, 45, 132, 7};
        System.out.println("排序之前:" + Arrays.toString(selectNums));

        selectSort(selectNums);
        System.out.println("排序之后:" + Arrays.toString(selectNums));

    }
    public static void swap(int[]nums,int i,int j){
        int temp=nums[i];
        nums[i]=nums[j];
        nums[j]=temp;
    }
    public  static void selectSort(int[] nums){
        for(int i=0;i 

运行效果

三、插入排序

插入排序(Insert Sort)就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

import java.util.Arrays;

public class example3 {
    public static void main(String[] args) {
        int[] insertNums = {5, 3, 18, 15, 32, 7};
        System.out.println("排序之前:" + Arrays.toString(insertNums));

        insertSort(insertNums);
        System.out.println("排序之后:" + Arrays.toString(insertNums));

    }
    public static void insertSort(int[] nums){
        for(int i=1;i=0&&nums[j]>k){
                nums[j+1]=nums[j];
                j--;
            }
            nums[j+1]=k;
            System.out.println("第"+i+"次排序:"+Arrays.toString(nums));
        }
    }
}

运行效果

四、快速排序

快速排序(Quick Sort)的基本思想:通过一次排序将待排序元素分割成两个独立的部分,其中一部分元素都要比另一部分小,之后对两部分分别排序,最终得到一个有序数列。
算法描述:
1.从数列中选择一个元素作为“基准”,即分割数列
2.排列数列,将所有小于“基准”的元素全都放到左边,将大于“基准”的元素全部放到右边
3.将分割的部分分别递归的排序

import java.util.Arrays;



public class example4 {
    public static void main(String[] args) {
        int[] quickNums = {25, 63, 18, 29, 26, 78, 45, 132, 7};
        System.out.println("排序之前:" + Arrays.toString(quickNums));

        quickSort(quickNums);
        System.out.println("排序之后:" + Arrays.toString(quickNums));

    }

    public static int position(int[] nums, int low, int high) {
        int i = low;
        int j = high;
        int x = nums[low];
        while (i < j) {
            while (nums[j] >= x && i < j) {
                j--;
            }
            if (i < j) {
                nums[i] = nums[j];
                i++;
            }
            while (nums[i] < x && i < j) {
                i++;
            }
            if (i < j) {
                nums[j] = nums[i];
                j--;
            }

        }
        nums[i] = x;
        return i;
    }

    public static void quickSort(int[] nums, int low, int high) {
        int k = 1;
        if (low < high) {
            int index = position(nums, low, high);
            quickSort(nums, low, index - 1);
            quickSort(nums, index + 1, high);
        }
    }
    public static void quickSort(int[] nums){
        int low=0;
        int high=nums.length-1;
        quickSort(nums,low,high);
    }
}

运行结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号