【数据结构】【直接排序法】Java代码

简介: 【数据结构】【直接排序法】Java代码
public class 直接排序 {
    /**
     * 直接排序法 仅排序1轮
     * @param arr 数组
     * @param ji 基准索引,填写几,就以谁为基准进行一次划分
     */
    public static void qsort(int[] arr, int ji) {
     int l=0;
     int r=arr.length-1;
     while(l<r){
         while(l<r&&arr[r]>arr[ji]) r--;
         if(l<r) {
             int temp=arr[r];
             arr[r]=arr[ji];
             arr[ji]=temp;
             ji=r;
         }
         while(l<r&&arr[l]<arr[ji]) l++;
         if(l<r) {
             int temp=arr[l];
             arr[l]=arr[ji];
             arr[ji]=temp;
             ji=l;
         }
         printarr(arr);
    }
    }
    /**
     * 直接排序法 多轮划分
     * @param arr 数组
     * @param lun 基准索引,填写0,则从0开始,以其为基准,进行划分
     */
    public static void qsortAll(int[] arr, int lun) {
        if((arr.length-1)==lun) return;
        int ji=lun;
        int l=0;
        int r=arr.length-1;
        while(l<r){
            while(l<r&&arr[r]>arr[ji]) r--;
            if(l<r) {
                int temp=arr[r];
                arr[r]=arr[ji];
                arr[ji]=temp;
                ji=r;
            }
            while(l<r&&arr[l]<arr[ji]) l++;
            if(l<r) {
                int temp=arr[l];
                arr[l]=arr[ji];
                arr[ji]=temp;
                ji=l;
            }
        }
        printarr(arr);
        qsortAll(arr,++lun);
    }
    /**
     * 用来输出数组
     * @param arr 要输出的数组
     */
    public static void printarr(int[] arr){
    for (int i:arr) {
        System.out.print(i+"\t");
    }
    System.out.println();
}
    /**
     * 主方法
     * @param args
     */
    public static void main(String[] args) {
        int[] arr = new int[]{410,10,80,9,70,4};
//        int[] arr = new int[]{46,79,56,38,40,84};
        qsortAll(arr, 0);
        for (int i:arr) {
            System.out.print(i+"\t");
        }
    }
}
//         for(r=arr.length-1;r>0;r--){
//             if(arr[r]<arr[ji]){
//                 int temp = arr[r];
//                 arr[r]=arr[ji];
//                 arr[ji]=temp;
//                 ji=r;
//                 printarr(arr);
//                 break;
//             }
//         }
//        for(l=0;l<arr.length;l++){
//            if(arr[l]>arr[ji]){
//                int temp = arr[l];
//                arr[l]=arr[ji];
//                arr[ji]=temp;
//                ji=l;
//                printarr(arr);
//                break;
//            }
//        }
相关文章
|
24天前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
48 1
|
1月前
|
XML 安全 Java
Java反射机制:解锁代码的无限可能
Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。 反射机制能够使程序具备更大的灵活性和扩展性
43 5
Java反射机制:解锁代码的无限可能
|
28天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
45 6
|
1月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
9天前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
66 3
|
1月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
1月前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
4月前
|
搜索推荐 算法 Java
|
4月前
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)