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标准库提供了多种排序算法实现,如Arrays.sort()内部采用的快速排序和归并排序,以及Collections.sort()默认使用的TimSort。理解这些排序算法的原理,有助于在实际开发中选择最适合的排序方式。 递归与分治策略...
理解各种排序算法的时间复杂度和适用场景至关重要,Java中的Arrays.sort()方法就是基于快速排序和归并排序的实现。 9. **搜索算法**:深度优先搜索(DFS)和广度优先搜索(BFS)是图和树遍历的基础,Java中的Stack...
除了以上提到的,这个源码包可能还涵盖了其他算法,如排序算法(快速排序、归并排序、堆排序等)、图算法(深度优先搜索、广度优先搜索、Floyd算法等)、动态规划、贪心算法、回溯法等。学习这些算法有助于提升编程...
排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等,每种都有其特点和适用场景,例如快速排序通常在平均情况下表现优秀,而归并排序则保证了稳定性。 排序算法在实际开发中应用广泛,是每个...
例如,快速排序是一种高效的排序算法,它的核心思想是分治法;二分查找则利用了有序序列的特点,提高了搜索效率;图论中的最短路径算法(如Dijkstra算法或Floyd算法)在路由规划、网络优化等领域发挥着重要作用;...
例如,快速排序是一种高效的排序算法,它的核心思想是分治策略;二分搜索适用于有序数组,能够在对数时间内找到目标元素;图算法如Dijkstra算法用于寻找最短路径,Prim算法用于构造最小生成树。 这个压缩包中的...
这里涉及的主要算法类型有排序算法(如冒泡排序、快速排序、归并排序、堆排序)、查找算法(如线性搜索、二分查找)、图算法(如深度优先搜索、广度优先搜索)以及动态规划、贪心算法和回溯法等。排序算法用于调整...
它们包括排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等)、查找算法(如线性查找、二分查找、哈希查找)、图算法(如深度优先搜索、广度优先搜索、最短路径算法Dijkstra和Floyd)、动态...
1. **排序算法**:包括快速排序、归并排序、冒泡排序、选择排序、插入排序等。这些算法在数据处理中起着关键作用,它们通过比较和交换元素来重新排列序列,以达到升序或降序的顺序。 2. **查找算法**:如二分查找、...
这里可能包含了经典的排序算法(如快速排序、归并排序、堆排序)、搜索算法(如二分查找、深度优先搜索、广度优先搜索)以及动态规划、图论等相关算法。理解这些算法的工作原理,并能熟练地用Java语言实现,是...
这份《JAVA 算法大全》可能包括排序算法(如冒泡排序、插入排序、快速排序、归并排序、堆排序等)、搜索算法(如二分查找、深度优先搜索、广度优先搜索等)、图论算法(如最短路径算法Dijkstra、最小生成树Prim或...
在这个Java实现中,可能会包括经典的排序算法,如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序以及各种查找算法(如线性查找、二分查找、哈希查找)。这些算法不仅在理论上有研究价值,也是实际开发...
4. **排序与查找**:包括经典的排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)和查找算法(线性查找、二分查找)。这些是任何程序员都应该掌握的基础知识。 5. **树结构**:书中会详细...
常见的算法类型包括排序(如冒泡排序、快速排序)、搜索(如二分查找)、图算法(如最短路径算法)以及动态规划等。通过学习算法,我们可以提高程序的效率和可读性,同时锻炼逻辑思维能力。 二、编程语言与算法的...
书中会涵盖各种算法,如排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)、搜索算法(线性搜索、二分搜索、深度优先搜索、广度优先搜索)以及动态规划、贪心算法和回溯法等。这些算法不仅...
- **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,它们各有优劣,适用于不同场景。 - **查找算法**:线性查找、二分查找、哈希查找等,其中二分查找在有序数组中非常高效。 - *...
这个集合可能包含排序算法(如冒泡排序、快速排序、归并排序等)、查找算法(如二分查找、哈希查找等)、图算法(如深度优先搜索、广度优先搜索等)以及动态规划、贪心算法等高级算法。通过这些源码,你可以看到如何...
Java开发中的经典算法是开发者必须掌握的核心技能,它们能够有效地解决复杂的问题并优化程序性能。以下将详细阐述标题和描述中提到的八大算法: 1. **迭代法**:迭代是通过重复执行一个过程来达到某个结果的过程。...
本书将深入探讨排序算法(如冒泡排序、快速排序、归并排序、堆排序)和搜索算法(如线性搜索、二分搜索、哈希搜索),以及动态规划、贪心算法和回溯法等高级算法。这些算法在解决实际问题中有着广泛的应用,比如在...
同时,Java标准库也包含了一些算法的实现,例如排序算法在`java.util.Arrays`和`java.util.Collections`中都有提供。 四、学习资料 “Java数据结构和算法 第二版”这本书很可能是涵盖了上述所有概念的详细教程,...