public class QuickSort {
public static void swap(int [] arr,int a,int b)
{
int t;
t =arr[a] ;
arr[a] =arr[b] ;
arr[b] =t ;
}
public static int Partition(int [] arr,int low,int high)
{
int pivot=arr[low];//采用子序列的第一个元素作为枢纽元素
while (low < high)
{
//从后往前栽后一部分中寻找第一个小于枢纽元素的元素
while (low < high && arr[high] >= pivot)
{
--high;
}
//将这个比枢纽元素小的元素交换到前一部分
swap(arr,low, high);
//从前往后在前一部分中寻找第一个大于枢纽元素的元素
while (low <high &&arr [low ]<=pivot )
{
++low ;
}
swap(arr,low, high);//把比这个枢纽元素大的元素交换到后半部分
}
StringBuilder sb1 = new StringBuilder();
for(int t:arr) {
sb1.append(t).append(",");
}
System.out.println(sb1);
return low ;//返回枢纽元素所在的位置
}
public static void Sort(int [] a,int low,int high)
{
if (low <high )
{
int n=Partition (a ,low ,high );
Sort (a ,low ,n );
Sort (a ,n +1,high );
}
}
public static void main(String[] args) {
int [] test={5,66,77,3,44,8,921,23,50};
StringBuilder sb1 = new StringBuilder();
for(int t:test) {
sb1.append(t).append(",");
}
System.out.println(sb1);
Sort(test,0,test.length-1);
StringBuilder sb2 = new StringBuilder();
for(int m:test) {
sb2.append(m).append(",");
}
System.out.println(sb2);
}
}
分享到:
相关推荐
JAVA实现快速排序 快速排序是一种高效的排序算法,它的实现可以分为两个部分:基本思想和复杂度分析。在基本思想中,快速排序采用“分而治之”的思想,把大的拆分为小的,小的拆分为更小的,直到序列中的所有记录均...
总的来说,快速排序和折半查找是计算机科学中不可或缺的算法,通过递归和分治策略,可以在Java中高效地实现这些算法,并结合界面设计,为用户提供直观的交互体验。在实际项目中,理解和掌握这些算法有助于优化数据...
这是一个用Java语言实现的快速排序算法,快速排序算法是根据分冶思想去实现的。
在Java中实现快速排序,我们可以遵循以下步骤: 1. **选择基准值(Pivot)**:首先,我们需要从数组中选取一个元素作为基准,这个元素将被用来分割数组。通常选择第一个或最后一个元素,但也可以是随机选取的。 2....
总之,这个Java实现的快速排序演示项目不仅提供了排序算法的实现,还考虑到了教育和演示的需求,通过可视化工具帮助用户更好地理解和学习快速排序的工作机制。通过深入研究这个项目,可以加深对快速排序以及分治策略...
在Java中实现快速排序,通常会用到递归。下面我们将深入探讨快速排序的步骤、优点、缺点以及如何在实际代码中实现。 ### 步骤 1. **选择基准**:首先,我们需要选择一个元素作为基准。这可以是数组的第一个元素,也...
然而,标题中的"java Document 快速排序法"可能指的是在一个包含文档数据的结构(如数组)中实现快速排序,而不是直接在Document对象上操作。由于Document主要处理文本数据,我们通常不会直接在Document上进行数值...
根据给定文件中的标题、描述、标签...综上所述,通过对给定文件的分析,我们不仅理解了如何使用Java实现快速排序算法,还深入了解了该算法的工作原理、性能特点以及优化方法,这对于理解和掌握快速排序具有重要意义。
在Java中实现快速排序,我们通常会定义一个`quickSort()`方法,该方法接受一个整数数组作为参数。快速排序的核心在于选择一个基准元素(pivot),并重新排列数组使得所有小于基准的元素都在其前,所有大于基准的元素...
**三、JAVA实现快速排序的关键代码解析** #### 1. 快速排序类定义 ```java package ch1; public class Quicksort { // ... (方法定义) } ``` **解析:** - `package ch1;`:指定该类属于`ch1`包。 - `public ...
2. **Java实现快速排序**: 在Java中,我们可以创建一个名为`quickSort`的方法,接收一个整型数组作为参数。首先,选择数组的第一个元素作为基准,然后遍历数组,将小于基准的元素移动到其前面,大于基准的元素移动...
以上就是四种排序算法的基本介绍和Java实现。每种排序算法都有其适用场景,例如冒泡排序和插入排序在小规模数据或部分有序数据中表现较好,而快速排序在大多数情况下具有较高的效率。了解并熟练掌握这些排序算法,...
在这个Java实现中,我们将详细探讨快速排序的工作原理,代码结构,以及如何通过源码理解和运用这个工具。 快速排序的步骤如下: 1. **选择基准元素(Pivot Selection)**:首先,从数组中选择一个元素作为“基准”...
在实际应用中,我们通常会根据具体场景选择更适合的排序算法,例如快速排序、归并排序等,它们在处理大数据量时具有更好的性能。 总结来说,Java实现冒泡排序主要涉及数组操作、循环结构以及条件判断。理解冒泡排序...
在Java中实现快速排序,我们可以定义一个名为`quickSort`的方法,该方法接受一个整型数组作为参数,以及两个整数作为边界,代表当前处理的子数组的范围。以下是快速排序的基本步骤: 1. **选择基准元素(Pivot)**...
在 JAVA 中,快速排序法可以通过两种方式实现:QuickSort1 和 QuickSort2。下面是对这两种方式的详细解释: QuickSort1 QuickSort1 是一种传统的快速排序法实现方式。它的主要思想是通过选择一个基准元素,将数组...
### Java实现快速排序算法知识点详解 #### 一、快速排序的基本概念 快速排序是一种非常高效且广泛应用的排序算法,最早由C.A.R. Hoare在1960年提出。其核心思想是采用分治法策略,通过一次排序操作将待排序的数据...
在Java中实现快速排序,我们可以遵循以下步骤: 1. **选择枢轴元素**:在原始数组中随机或固定选择一个元素作为枢轴。在这个例子中,我们选择了第一个元素。 2. **分区操作**:通过两个指针I和J,I从数组起始位置...
java实现的各种排序法,冒泡排序法,插入排序法,选择排序法和快速排序法,代码中还包括各种排序法效率的检验,既可以用来学习,又可以做项目是用来参考。