`

序_排_速_快_现_实_JAVA

阅读更多
JAVA实现一个快速排序?
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

//冒泡排序
int[] a = new int[] { 1, 3, 9, 2, 0, 6, 8, 7, 5 };
int b = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
}
}
//插入排序
for(int i=1;i<arr.length;i++){
int temp=arr[i];
int j=i;
for(;j>0 && arr[j-1]>temp;j--){
arr[j]=arr[j-1];
}
arr[j]=temp;
}

///////////////////////////////////////////////
    /**
     * 测试类
     * @param args
     */
    public static void a()
    {
        int[] aa = new int[] {2, 8, 9, 2, 1, 4, 6, 5};
        Arrays.sort(aa);
        get(aa, 9);
    }
   
    /**
     * 使用二分查找法查找数组中的某个数
     * @param index 数组集合
     * @param num 要查找的数
     */
    public static void get(int[] index, int num)
    {
        int leng = index.length;
        if (leng > 0)
        {
            if (leng == 1)
            {
                if (index[0] == num)
                {
                    System.out.println("result: " + num); //$NON-NLS-1$
                }
                return;
            }
            int l = leng / 2;
            if (index[l] > num)
            {
                int[] a = new int[l];
                System.arraycopy(index, 0, a, 0, a.length);
                get(a, num);
            }
            else if (index[l] < num)
            {
                int[] a = new int[leng - l - 1];
                System.arraycopy(index, l + 1, a, 0, a.length);
                get(a, num);
            }
            else if (index[l] == num)
            {
                System.out.println("result: " + num); //$NON-NLS-1$
            }
        }
    }

//二分查找法
int[] index = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
        Arrays.sort(index);
        int begin = 0;
        int end = index.length;
        while (end - begin >= 0)
        {
            int center = (begin + end) / 2;
            if (index[center] == a)
            {
                System.out.println("OK" + index[center]);
                break;
            }
            else if (index[center] > a)
            {
                end = center - 1;
            }
            else if (index[center] < a)
            {
                begin = center + 1;
            }
        }
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SE_JAVA_EXP_E046.zip

    【SE_JAVA_EXP_E046.zip】是一个与Java编程相关的学习资源,它包含了易智教云课堂上一道练习题的满分答案。这道习题可能是面向正在学习Java编程的学生们,旨在帮助他们理解和掌握Java语言的核心概念和编程技巧。由于...

    java_cup_v10k.rar_java c++_java cup_java-c_java_cup.z_java_cup_v

    Java_CUP_v10k是一个基于Java的词法和语法分析工具,主要用于自动生成Java代码。这个工具的主要功能是解析用户定义的文法规范(通常为`.cup`文件),然后生成对应的解析器和词法分析器(lexer)的Java源代码。在软件...

    java_011 java 人脸识别完整源代码

    java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011...

    linux_java_opencv_4.5.1.zip

    linux centos java opencv4.5.1开发依赖,由于在本地是windows环境,直接在opencv官网下载windows版本下载后,即可得到opencv-451.jar和opencv_java451.dll,可以愉快的开发及测试,但是测通过之后需要部署到服务器...

    JAVA_API_1.7中文

    JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API_1.7中文JAVA_API...

    JAVA与PLC通信.rar_JAVA与PLC通信_java plc_java plc 通信_java与PLC_plc与java

    java与PLC通信的实现代码,包含读和写

    java_util_concurrent_user_guide.zip

    java_util_concurrent_user_guide.zipjava_util_concurrent_user_guide.zipjava_util_concurrent_user_guide.zipjava_util_concurrent_user_guide.zipjava_util_concurrent_user_guide.zipjava_util_concurrent_user...

    Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的

    Java 环境配置与设置 JAVA_HOME, CLASSPATH, PATH 的目的 Java 环境配置是 Java 开发的基础,我们需要正确地配置 JAVA_HOME, CLASSPATH, PATH 等环境变量,以便正确地编译和运行 Java 程序。在本节中,我们将详细地...

    Java_jdk1.8.0_241 环境变量

    `.`表示当前目录,`%JAVA_HOME%\lib`和`$JAVA_HOME/lib`包含了JDK的核心类库,`%JAVA_HOME%\lib\ext`和`$JAVA_HOME/lib/ext`则是扩展类库目录。 另外,`JAVA_JRE`虽然不是必须的环境变量,但有时会被设置来指向Java...

    jmx_prometheus_javaagent-0.12.0.jar

    代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar

    flink-streaming-java_2.11-1.13.2-API文档-中文版.zip

    赠送jar包:flink-streaming-java_2.11-1.13.2.jar; 赠送原API文档:flink-streaming-java_2.11-1.13.2-javadoc.jar; 赠送源代码:flink-streaming-java_2.11-1.13.2-sources.jar; 赠送Maven依赖信息文件:flink-...

    java_ee_sdk-7-jdk7-windows-x64.exe

    然后在你存放的java_ee_sdk-7-jdk7-windows-x64.exe的目录先启动终端(cmd),执行命令,使其安装指向java的运行环境。 java_ee_sdk-7-jdk7-windows-x64.exe -j "你安装jre(java运行环境的jre目录

    Java_Linux64_sdk_demo_大华_jna_动态库

    General_NetSDKDemo_Chn_Java_Linux64_IS_V1.00.41295.T.190925.7z 这里的包是Linux64最全的,大华技术说其他的linux动态库都是有问题的 分三个包 大华设备各种Demo及所需jar包 \libs\linux64 examples.jar ...

    flink-streaming-java_2.12-1.14.3-API文档-中文版.zip

    赠送jar包:flink-streaming-java_2.12-1.14.3.jar; 赠送原API文档:flink-streaming-java_2.12-1.14.3-javadoc.jar; 赠送源代码:flink-streaming-java_2.12-1.14.3-sources.jar; 赠送Maven依赖信息文件:flink-...

    flink-streaming-java_2.12-1.14.3-API文档-中英对照版.zip

    赠送jar包:flink-streaming-java_2.12-1.14.3.jar; 赠送原API文档:flink-streaming-java_2.12-1.14.3-javadoc.jar; 赠送源代码:flink-streaming-java_2.12-1.14.3-sources.jar; 赠送Maven依赖信息文件:flink-...

    libopencv_java3.so

    libopencv_java3.so

    libopencv_java.so

    https://blog.csdn.net/qq_27721169/article/details/98765646

    java_websocket.jar

    import org.java_websocket.WebSocket; import org.java_websocket.WebSocketImpl; import org.java_websocket.framing.Framedata; import org.java_websocket.handshake.ClientHandshake; import org.java_...

    SAP_GUI_730_JAVA_MAC

    【SAP_GUI_730_JAVA_MAC】是一款专为苹果MAC操作系统设计的SAP图形用户界面(GUI)版本,版本号为730。SAP GUI是SAP系统的重要组成部分,它允许用户通过图形化的界面与SAP应用进行交互,执行各种业务操作。这个版本...

    java_ee_sdk-8u1.zip

    Java Platform, Enterprise Edition 8 SDK Update 1 Java EE 8 continues to improve API and programming models needed for today's applications and adds features requested by our world-wide community. ...

Global site tag (gtag.js) - Google Analytics