package com.quicksort;
public class QuickSort {
public static void main(String[] args){
int[] array = {9,5,21,3,7,8};
int[] b = kuaisu(array);
for(int i:b){
System.out.print(i + " ");
}
}
public static int[] kuaisu(int[] arr) {
return quicksort(arr, 0, arr.length - 1);
}
public static int[] quicksort(int[] arr, int left, int right) {
int t;
if (left < right) {
int s = arr[left];
int i = left;
int j = right + 1;
while (true) {
while (i + 1 < arr.length && arr[++i] < s)
;
while (j - 1 > -1 && arr[--j] > s)
;
if (i >= j) {
break;
} else {
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[left] = arr[j];
arr[j] = s;
quicksort(arr, left, j - 1);
quicksort(arr, j + 1, right);
}
return arr;
}
}
分享到:
相关推荐
在Java编程语言中,数组排序是一项基础且重要的任务。它涉及到不同的算法,这些...在实际应用中,还可以考虑使用Java的内置排序方法`Arrays.sort()`,它使用了一种高效的快速排序变体,但具体实现细节则由JVM实现决定。
首先,最常见的数组排序算法是冒泡排序(Bubble Sort)、选择排序(Selection Sort)、插入排序(Insertion Sort)和快速排序(Quick Sort)。这些算法都有其独特的工作原理和性能特点。 1. **冒泡排序**:冒泡排序...
Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序、堆排序和归并排序 三种Java数组复制方法 Java数组最大最小值 四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、...
2. **选择排序算法**:有许多排序算法可供选择,如冒泡排序、插入排序、选择排序、快速排序、归并排序等。对于小规模的数据或部分排序,简单排序算法如插入排序可能就足够了。对于大规模数据,效率更高的算法如快速...
4. **二分查找**:二分查找法适用于已排序的数组,通过不断缩小搜索范围快速找到目标元素。 5. **下标类型**:Java中数组的下标是整型(`int`),不能是其他数据类型。 6. **下标范围**:数组的最小下标是0,最大...
描述中的程序实现了快速排序法,可能是用一种编程语言如C++、Java或Python编写的,用于对一维数组进行排序。这种程序的实现一般包括上述的三个主要步骤,并可能包含优化措施,例如处理小数组时改用插入排序,或者...
4. 快速排序:利用分治策略,选取一个基准元素,将数组分为两部分,一部分所有元素小于基准,另一部分所有元素大于基准,然后递归对这两部分进行快速排序。平均时间复杂度为O(n log n),最坏情况为O(n^2)。 5. 归并...
Java数组排序是Java语言中对数组进行排序的方法,包括快速排序、选择排序、冒泡排序和插入排序等。这些排序算法都是Java语言中常用的数组排序方法,每种算法都有其特点和应用场景。 冒泡排序是Java语言中的一种基本...
### JAVA数组的排序方法实例 #### 内容概述: 本文档详细介绍了两种在Java中对数组进行排序的方法:冒泡排序法与使用`Arrays.sort()`方法实现数组递增排序。这两种方法是Java编程中常见的排序手段,对于理解数组...
许多算法也依赖于数组,例如快速排序、归并排序、二分查找等。 学习Java数组是理解Java基础的重要一步,掌握数组的使用能够帮助开发者有效地处理和操作数据,为后续的编程学习打下坚实基础。在实际开发中,合理地...
冒泡排序是一种基础且经典的排序算法,它通过不断交换相邻两个元素的位置,使得每一次遍历都能将当前未排序...在实际开发中,对于大规模数据的排序,我们通常会选择更高效的排序算法,如快速排序、归并排序或堆排序。
`qsort`方法展示了快速排序的实现,其中使用了Java内置的`Arrays.sort()`方法,该方法通常采用优化过的快速排序算法。 3. **希尔排序**: 希尔排序是插入排序的一种改进版本,由Donald Shell于1959年提出。它通过...
此外,还有许多经典的排序算法,如冒泡排序、插入排序、选择排序、快速排序、归并排序等。这些排序算法各有优缺点,适用于不同的场景。 例如,冒泡排序是一种简单直观的排序方法,通过不断交换相邻的逆序元素逐步...
### Java数组讲解 #### 1. 数组基本概念与初始化 - **定义**: 数组是一种基本的数据结构,用于存储相同类型的多个元素。这些元素在内存中是连续存储的。 - **初始化**: 可以通过两种方式进行初始化:动态初始化和...
### Java数组排序三种方法 #### 一、类排序方法(使用`Arrays.sort()`) 在Java中,`java.util.Arrays`类提供了一系列实用的方法来处理数组。其中,`sort()`方法可以方便地对数组进行排序。 **特点:** - **简单...
Java数组排序算法主要涵盖三种经典的排序方法:冒泡排序、直接选择排序以及反转排序。这三种算法都是在处理数组数据时,对数组元素按照特定规则进行重新排列的常见方法。 1. **冒泡排序**: 冒泡排序是一种简单的...
本文将为大家介绍最简单易懂的Java数组排序方法,总结了四种常见的排序方法:快速排序法、冒泡排序法、选择排序法和插入排序法。 快速排序法 快速排序法是Java中最简单和最常用的排序方法之一。它使用了Java的...
在排序算法中,如快速排序、归并排序等使用了递归,它们在最好情况和平均情况下的时间复杂度为O(n log n),但在最坏情况下(如数据已经部分排序或完全排序)可能退化为O(n^2)。 了解这些排序算法的复杂度对于编写...
- 首先,我们可以将二维数组的元素转换成一维数组,然后使用标准的排序算法(如快速排序、归并排序)对一维数组进行排序。 - 排序完成后,根据原二维数组的行数和列数,再将一维数组重新构造回二维数组,此时元素...