`
caizhongda
  • 浏览: 188970 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

程序灵魂 之 快速排序算法(Java实现)

阅读更多

public class QSort {    
       
    /**   
     * 
     * @param pData 需要排序的数组   
     * @param left     左边的位置,初始值为0   
     * @param right 右边的位置,初始值为数组长度   
     */    
    public static void QuickSort(int[] pData,int left,int right)    
    {     
      int i,j;    
      int middle,temp;    
      i = left;    
      j = right;    
      middle = pData[left];    
      while(true)    
      {    
          while((++i)<right-1 && pData[i]<middle);    
          while((--j)>left && pData[j]>middle);    
          if(i>=j)    
              break;    
          temp = pData[i];    
          pData[i] = pData[j];    
          pData[j] = temp;    
      }    
     
      pData[left] = pData[j];    
      pData[j] = middle;    
         
      if(left<j)     
        QuickSort(pData,left,j);    
     
     
      if(right>i)     
        QuickSort(pData,i,right);    
    }    
     
    public static void main(String[] args){    
        int[] pData = new int[10];    
        for(int i = 0; i< 10; i++)    
            pData[i] = (int)(Math.random()*100);    
           
        for(int i = 0; i<pData.length; i++)    
            System.out.print(pData[i]+" ");    
           
        QSort.QuickSort(pData, 0, pData.length);    
           
        System.out.println("\n***********************");    
           
        for(int i = 0; i<pData.length; i++)    
            System.out.print(pData[i]+" ");    
    }    
     
}  






分享到:
评论

相关推荐

    JAVA算法分析-很好的java思想

    Java标准库提供了多种排序算法实现,如Arrays.sort()内部采用的快速排序和归并排序,以及Collections.sort()默认使用的TimSort。理解这些排序算法的原理,有助于在实际开发中选择最适合的排序方式。 递归与分治策略...

    算法导论-java

    理解各种排序算法的时间复杂度和适用场景至关重要,Java中的Arrays.sort()方法就是基于快速排序和归并排序的实现。 9. **搜索算法**:深度优先搜索(DFS)和广度优先搜索(BFS)是图和树遍历的基础,Java中的Stack...

    Java各种算法大全

    除了以上提到的,这个源码包可能还涵盖了其他算法,如排序算法(快速排序、归并排序、堆排序等)、图算法(深度优先搜索、广度优先搜索、Floyd算法等)、动态规划、贪心算法、回溯法等。学习这些算法有助于提升编程...

    java算法,数据结构,排序算法,学习路线.zip

    排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等,每种都有其特点和适用场景,例如快速排序通常在平均情况下表现优秀,而归并排序则保证了稳定性。 排序算法在实际开发中应用广泛,是每个...

    数据结构与算法(java版)

    例如,快速排序是一种高效的排序算法,它的核心思想是分治策略;二分搜索适用于有序数组,能够在对数时间内找到目标元素;图算法如Dijkstra算法用于寻找最短路径,Prim算法用于构造最小生成树。 这个压缩包中的...

    java算法设计与题解

    在当今信息化时代,编程语言如Java在全球范围内广泛应用于软件开发领域,而算法作为编程的核心灵魂,不仅能够提高程序的运行效率,而且是解决各种复杂问题的关键。《Java算法设计与题解》这本著作,以其系统全面的...

    Java 数据结构与算法+源代码 高清版

    这里涉及的主要算法类型有排序算法(如冒泡排序、快速排序、归并排序、堆排序)、查找算法(如线性搜索、二分查找)、图算法(如深度优先搜索、广度优先搜索)以及动态规划、贪心算法和回溯法等。排序算法用于调整...

    数据结构与算法分析(Java版英文)

    它们包括排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等)、查找算法(如线性查找、二分查找、哈希查找)、图算法(如深度优先搜索、广度优先搜索、最短路径算法Dijkstra和Floyd)、动态...

    经典算法(java、c语言描述)

    1. **排序算法**:包括快速排序、归并排序、冒泡排序、选择排序、插入排序等。这些算法在数据处理中起着关键作用,它们通过比较和交换元素来重新排列序列,以达到升序或降序的顺序。 2. **查找算法**:如二分查找、...

    Android 工程师成长之路:JAVA算法的实现,数据结构 和 Android源码笔记等 分享.zip

    这里可能包含了经典的排序算法(如快速排序、归并排序、堆排序)、搜索算法(如二分查找、深度优先搜索、广度优先搜索)以及动态规划、图论等相关算法。理解这些算法的工作原理,并能熟练地用Java语言实现,是...

    JAVA 算法大全

    这份《JAVA 算法大全》可能包括排序算法(如冒泡排序、插入排序、快速排序、归并排序、堆排序等)、搜索算法(如二分查找、深度优先搜索、广度优先搜索等)、图论算法(如最短路径算法Dijkstra、最小生成树Prim或...

    algorithms for studying or using 设计模式,算法等的java实现.zip

    在这个Java实现中,可能会包括经典的排序算法,如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序以及各种查找算法(如线性查找、二分查找、哈希查找)。这些算法不仅在理论上有研究价值,也是实际开发...

    Java数据结构和算法中文第二版_Java数据结构_

    4. **排序与查找**:包括经典的排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)和查找算法(线性查找、二分查找)。这些是任何程序员都应该掌握的基础知识。 5. **树结构**:书中会详细...

    程序语言的奥妙 算法解读pdf

    常见的算法类型包括排序(如冒泡排序、快速排序)、搜索(如二分查找)、图算法(如最短路径算法)以及动态规划等。通过学习算法,我们可以提高程序的效率和可读性,同时锻炼逻辑思维能力。 二、编程语言与算法的...

    数据结构与算法分析+java语言描述(原书第3版)

    书中会涵盖各种算法,如排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)、搜索算法(线性搜索、二分搜索、深度优先搜索、广度优先搜索)以及动态规划、贪心算法和回溯法等。这些算法不仅...

    数据结构与算法分析(java语言描述)中文第二版以及习题答案

    在《数据结构与算法分析》中,作者不仅讲解了多种排序算法,如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,还深入探讨了查找算法,包括线性查找、二分查找、哈希查找等,并分析了它们在时间复杂度...

    Java数据结构和算法(第二版),算法经典案例(C语言)

    - **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,它们各有优劣,适用于不同场景。 - **查找算法**:线性查找、二分查找、哈希查找等,其中二分查找在有序数组中非常高效。 - *...

    算法源码集合(Java版).rar

    这个集合可能包含排序算法(如冒泡排序、快速排序、归并排序等)、查找算法(如二分查找、哈希查找等)、图算法(如深度优先搜索、广度优先搜索等)以及动态规划、贪心算法等高级算法。通过这些源码,你可以看到如何...

    java开发经典算法

    Java开发中的经典算法是开发者必须掌握的核心技能,它们能够有效地解决复杂的问题并优化程序性能。以下将详细阐述标题和描述中提到的八大算法: 1. **迭代法**:迭代是通过重复执行一个过程来达到某个结果的过程。...

    数据结构与算法分析(Java版)

    本书将深入探讨排序算法(如冒泡排序、快速排序、归并排序、堆排序)和搜索算法(如线性搜索、二分搜索、哈希搜索),以及动态规划、贪心算法和回溯法等高级算法。这些算法在解决实际问题中有着广泛的应用,比如在...

Global site tag (gtag.js) - Google Analytics