Java学习第十二天——排序算法(二)详解8种排序算法

本文深入解析Java中的8种排序算法,包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、希尔排序和桶排序。详细介绍了每种算法的工作原理、性能特点及适用场景,帮助Java学习者巩固排序算法的理解。
摘要由CSDN通过智能技术生成
import java.util.Arrays;
import java.util.Scanner;

import javax.naming.ldap.SortControl;
import javax.sound.midi.MidiChannel;

import org.w3c.dom.ls.LSOutput;

/**功能;排序方法汇总
 * @author Administrator
 *思路; 1,array.sort
 *        2. 选择排序
 *        3,冒泡排序
 *        4. 插入排序
 *        
 *        6,归并排序
 *        7,快速排序
 *        8,希尔排序
 */
public class Demo1 {

    /**
     * @param args
     */
    /*
        *    7,快速排序
        *    选择一个基准元素,通常选择第一个元素或者最后一个元素,
        *    通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,
        *    此时基准元素在其排好序后的正确位置,
        *    然后再用同样的方法递归地排序划分的两部分。
        *
        *    1需要形参有开头start和结尾end
        *     2.如果start < end就递归自己
        *   3.把下标为0(也可以是其他下标)的值设为标准值 ,把开头和结束分别设置为低位(low)和高位(high)
        *    4.当low<high时循环执行
        *      1.(low<high时)高位的值大于标准值,把高位减一位,直到小于时把当前高位的值赋值给低位
        *      2.(low<high时)低位的值小于标准值,把低位减一位,直到大于时把当前低位的值赋值给高位
        *     5.执行完后此时的高位和低位相等,把标准值赋值给低位or高位的值   ,(low<high时)保证高位一定等于低位出循环
        *     6.此时的数组分为(low右边)大于标准值和(low左边)小于标准值    ,然后分两边递归调用自己  
        *     7.直到start >= end(low >= high)不会递归下去

        */
    
    public static void quikcsort(int a[],int low,int high){
        if(low<high){
            int middle = Middle(a,low,high);
            //先递归处理比基准数小的左边的数
            quikcsort(a, low, middle-1);
            //再递归处理比基准数大的右边的数
            quikcsort(a, middle+1, high);
        }
    }

    public static int Middle(int a[],int low,int high){
        int temp = a[low];
        while(low < high){
            while(low < high&&a[high
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值