`

快速排序java程序

    博客分类:
  • java
阅读更多
public class QuickSort {

    public static void sort(Comparable[] data)
    {
        sort(data,0,data.length -1);
    }

    public static void sort(Comparable[] data, int low, int high)
    {
        Comparable pivot = data[low];
        int i = low;
        int j = high;
        if(low < high)
        {
            while(i < j)
            {
                while(i < j && data[j].compareTo(pivot) >0)
                {
                    j--;
                }

                if(i < j)
                {
                    data[i] = data[j];
                    i++;
                }

                while(i < j && data[i].compareTo(pivot) < 0)
                {
                    i++;
                }

                if(i < j)
                {
                    data[j] = data[i];
                    j--;
                }
            }
        }

        data[i] = pivot;      //将所选元素赋值
        
        if(low < i-1)
            sort(data,low,i-1);
        if(i+1 < high)
            sort(data,i+1,high);
        
    }

    public static void main(String[] args) {

        Integer[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };
        QuickSort.sort(c);
        for (Comparable data : c)
        {
            System.out.println(data);
        }
    }
}

 

分享到:
评论

相关推荐

    java 快速排序 折半查找的界面实现 (递归与分治法)

    总的来说,快速排序和折半查找是计算机科学中不可或缺的算法,通过递归和分治策略,可以在Java中高效地实现这些算法,并结合界面设计,为用户提供直观的交互体验。在实际项目中,理解和掌握这些算法有助于优化数据...

    java 快速排序程序

    java 编写的快速排序程序递归形式我做的课堂作业,,希望能帮助大家。。。

    快速排序 Java 示例

    快速排序的简单实现程序,java编制,迭代法对数据组分区,知道简单的java基础,基本就可以看懂这个小程序了

    快速排序Java实现程序

    public static void quicksort(int[] array,int start, int end){ if(start&gt;=end) return; int middle=partition(array,start,end); quicksort(array,start,middle-1); quicksort(array,middle+1,end);...

    JAVA冒泡排序和快速排序算法

    在JAVA中,实现这两种排序算法可以使用面向对象的特性,创建一个类如`MaopaoKuaisu.java`,在这个类中定义两个方法,分别实现冒泡排序和快速排序。类的结构可能如下: ```java public class MaopaoKuaisu { public...

    java实现快速排序演示

    总之,这个Java实现的快速排序演示项目不仅提供了排序算法的实现,还考虑到了教育和演示的需求,通过可视化工具帮助用户更好地理解和学习快速排序的工作机制。通过深入研究这个项目,可以加深对快速排序以及分治策略...

    快速排序的java实现

    在这个Java程序中,`partition()`方法实现了分区操作,`sort()`方法负责递归调用,`main()`方法创建了一个测试数组并调用了快速排序。当运行这个程序时,数组将被排序并打印出结果。 快速排序的平均时间复杂度为O(n...

    用JAVA语言实现的对数据的快速排序法

    - **主要功能**:该程序的主要目的是使用Java语言实现对一系列数据进行快速排序的功能。 - **应用场景**:适用于需要对大量数据进行高效排序的实际应用场合。 #### 描述:该程序是用JAVA语言编写的,主要实现的是对...

    快速排序 java代码

    运行这个测试程序,将打印出排序前后的数组,证明快速排序的正确性。 ### 性能分析 快速排序平均时间复杂度为O(n log n),最坏情况(已排序数组)下为O(n^2),但这种情况在实际应用中很少出现。由于快速排序是原地...

    几种常用的排序法 java程序

    本资源包含了一些常见的排序算法的Java实现,包括快速排序、堆排序和归并排序。下面将对这些排序算法进行详细介绍,并探讨它们的原理、优缺点以及适用场景。 1. 快速排序(Quick Sort) 快速排序是一种分治策略的...

    java排序小程序

    4. **快速排序(改进)**:快速排序是一种高效的排序算法,基于“分而治之”的思想。选取一个基准元素,将序列分成两部分,使得一部分的所有元素都小于基准,另一部分的所有元素都大于基准,然后对这两部分再递归地...

    java 排序算法 选择排序,插入排序,自顶向上合并排序,合并排序,快速排序

    在编程领域,排序算法是数据结构与算法学习中的重要组成部分,尤其在Java中,掌握各种排序算法对于优化程序性能至关重要。以下将详细讲解标题和描述中提到的五种排序算法:选择排序、插入排序、自顶向上合并排序、...

    java实现的shell排序快速排序归并排序堆排序

    `quicksort.java`文件应包含快速排序的主逻辑,包括分区操作和递归调用。 3. **归并排序**: 归并排序是另一种基于分治策略的排序算法,由John von Neumann于1945年提出。它将数组分为两个子数组,分别进行排序,...

    算法之快速排序java实现代码案例

    快速排序的 Java 实现代码例子程序,需要的可以参考

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

    查找归并排序快速排序比赛日程安排)JAVA

    这里我们主要探讨三种排序算法:查找、归并排序和快速排序,它们都是基于不同的策略来达到高效排序的目的。这些算法在Java编程语言中都有实现,因此我们将深入理解它们的工作原理,并结合比赛日程安排的应用场景来...

    课程设计java程序源代码

    - **算法实现**:可能包括排序算法(如冒泡排序、快速排序)、查找算法(如二分查找)或其他数学问题的解决方案。 - **数据结构**:如数组、链表、栈、队列、树等,它们是解决复杂问题的基础。 - **图形用户界面**...

    java负责排序的程序包

    设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...

    快速排序算法及其Java实现

    本文主要讲解了快速排序的工作原理,同时提供了一段详细的Java语言代码实现。具体包括了划分(partition)与交换(swap)的操作,最后分析了算法的时间复杂度。 适用人群:计算机科学与软件工程领域的学生及从业人员...

Global site tag (gtag.js) - Google Analytics