`

序_排_速_快_现_实_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;
            }
        }
分享到:
评论
发表评论

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

相关推荐

    IBM WAS8.5配置WS_SDK_JAVA_TECH_7.0.6.1__TRIAL

    IBM WebSphere Application Server (WAS) 8.5 配置与 IBM Web Services Software Development Kit for Java (WS_SDK_JAVA_TECH) 7.0.6.1 的整合是企业级Java应用程序开发的关键环节。本资源包提供了WS_SDK_JAVA_TECH...

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

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

    SE_JAVA_EXP_E046.zip

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

    CCP_REST_SMS_SDK_JAVA_v2.6.3r_java_V2_CCPRestSmsSDK.jar_

    java相关项目开发短信功能使用的jar包

    linux_java_opencv_4.5.1.zip

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

    SOM_Java_v.0.1.zip_SOM_Java_v.0.1_java s_som java_som java code_

    标题中的"SOM_Java_v.0.1.zip"是一个压缩包文件,其中包含了与Java相关的 SOM(可能是"System Object Model"或"Self-Organizing Maps"的缩写)的源代码,版本为0.1。这个项目可能是一个用于构建应用程序的框架或者库...

    怎样禁用及回收java的授权dbms_java

    - 使用`SELECT * FROM USER_JAVA_POLICY`语句可以查询当前用户所拥有的所有Java权限信息。 - 该查询结果通常会包含授权的详细信息,例如授权名、类型、目标等。 2. **识别授权键值**: - 在查询结果中,找到与待...

    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_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-...

    bbs.rar_bbs_bbs sqlserver java_java BBS_simple bbs java_sqlserve

    【标题】"bbs.rar_bbs_bbs_sqlserver_java_java_BBS_simple_bbs_java_sqlserver"揭示了这个压缩包是一个关于论坛(BBS)开发的资源,主要涉及到的技术栈是Java编程语言和SQL Server数据库系统。这个简单的Java BBS...

    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-...

    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.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-...

    php_java.jar和php_java.dll

    例如,开发者可能需要使用Java的加密库来增强网站的安全性,或者利用Java的图形处理库来处理图像。通过PHP/Java Bridge,这些功能可以无缝地融入到PHP应用中。 总的来说,"php_java.jar"和"php_java.dll"是连接PHP...

    libopencv_java.so

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

    sun_java_wireless_toolkit-2_5_2-windows.exe

    sun_java_wireless_toolkit-2_5_2-windows.exe

    libopencv_java3.so

    libopencv_java3.so

    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