快速排序quickSort
public class Test {
public static void main(String[] args) {
int arr[] = {3, 5, 6, 333, 5, 2, 1111, 1, 2, 3, 4, 5, 6, 7, 8, 8};
quickSort(arr, 0, arr.length - 1);
}
public static void quickSort(int arr[], int start, int end) {
if (start >= end) {return;}
int prviod = partion(arr, start, end);
quickSort(arr, start, prviod - 1);
quickSort(arr, prviod + 1, end);
}
public static int partion(int arr[], int start, int end) {
int j = start - 1;
int index = start;
for (; index < end; index++) {
if (arr[index] < arr[end]) {
swap(arr, j + 1, index);
j++;
}
}
swap(arr, j + 1, end);
System.out.println(Arrays.toString(arr));
return j + 1;
}
public static void swap(int arr[], int j, int index) {
int tmp = arr[j];
arr[j] = arr[index];
arr[index] = tmp;
}
}
分享到:
相关推荐
本篇文章将通过一组具体的数据集(8个整数)对直接插入排序(Direct Insertion Sort)和希尔排序(Shell Sort)这两种排序方法进行深入分析和比较。这两种排序算法在实际应用中都非常常见,各有优劣。 #### 二、...
本篇文章将深入探讨TIA博途SCL语言中的快速排序算法,以及如何将其封装为一个全局功能块(FC)库文件,以便在项目中重复使用,并支持升序或降序排列。 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. ...
本篇文章将详细解析Java中常见的排序方法,结合"javaeye 收集的java排序小结"资料,旨在帮助读者理解和掌握这些排序算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过重复遍历数组,比较...
本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...
本篇文章将深入探讨如何使用JavaScript实现十大经典排序算法,帮助开发者更好地理解和运用这些算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序方法,通过重复遍历待排序的数组,比较相邻元素并交换...
这篇实验报告主要关注了五种不同的排序算法:冒泡排序、插入排序、选择排序、归并排序和快速排序。在报告中,作者通过C++编程实现了这些算法,并进行了实际的性能比较,特别是在处理不同规模(N=1000, 10000, 100000...
本篇文章将深入分析几种基本的排序算法,并通过具体的Java代码示例来阐述每种算法的特点及其应用场景。 #### 1. 插入排序 (Insertion Sort) **定义与原理**:插入排序是一种简单的排序算法,它的工作原理是通过...
本篇将详细探讨快速排序、希尔排序和归并排序这三种在C语言中常见的排序算法。 首先,我们来看快速排序(Quick Sort)。快速排序由C.A.R. Hoare在1960年提出,其基本思想是分治法。它的核心是选择一个基准元素,...
本篇文章将详细探讨Vc++环境下几种常见排序算法的时间复杂度,帮助你理解不同排序算法在性能上的差异。 首先,我们来介绍几种基础的排序算法: 1. 冒泡排序(Bubble Sort):冒泡排序是一种简单的排序算法,它重复...
本篇主要探讨基于比较的内部排序方法,即通过比较元素之间的关系来确定排序顺序。这些排序算法广泛应用于各种场景,如数据库、数据分析和算法竞赛。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,...
对于大规模且无特定顺序的数据,快速排序(Quick Sort)、归并排序(Merge Sort)或堆排序(Heap Sort)等更高效的方法可能更为适用。 1. 插入排序:这是一种简单直观的排序算法,它的工作原理是通过构建有序序列,...
- Quick Sort(快速排序):通过一个划分操作将数据分成独立的两部分,其中一部分的所有数据都比另一部分小。 - Heap Sort(堆排序):将数组构建为一个最大堆,然后逐个将堆顶元素(最大值)与数组末尾元素交换。 -...
这篇实验报告将深入探讨两种经典的排序算法——快速排序和归并排序,通过对它们在Java环境中的实现和性能测试,揭示它们在处理不同规模数据时的效率差异。 **快速排序(Quick Sort)** 快速排序由C.A.R. Hoare在...
本篇将重点讲解如何利用ArrayList实现快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort)这三种经典的排序算法,并探讨它们的原理、优缺点以及在实际应用中的选择。 **快速排序(Quick Sort)**...
本篇将详细探讨对半查找(Binary Search)、选择排序(Selection Sort)、冒泡排序(Bubble Sort)和快速排序(Quick Sort)在Objective-C中的实现方式。 首先,让我们从对半查找开始。对半查找是一种效率极高的...
本篇文章将详细分析八种常见的排序算法,探讨它们的执行效率,以及关键语句的执行次数。 1. 冒泡排序(Bubble Sort) 冒泡排序是最基础的排序算法之一,通过不断交换相邻的逆序元素实现排序。其平均时间复杂度为O(n...
本篇文章将通过具体的实验来对比几种经典的排序算法:插入排序、起泡排序、选择排序、快速排序、堆排序以及归并排序。实验将利用随机函数产生30000个随机整数,并采用这些排序算法对数据进行排序,同时记录每种算法...
本篇我们将深入探讨JavaScript中实现的几种比较排序算法,并分析它们的工作原理、性能以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最基础的排序算法之一,通过不断交换相邻的逆序元素来逐步完成排序。它...
在本篇总结中,将探讨8种经典的排序算法,分别是冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、二叉树排序和基数排序。 1. 冒泡排序(Bubble Sort): 冒泡排序是一种简单的排序算法。它重复地遍历要...
本篇将详细讲解希尔排序、堆排序和快速排序这三种经典的排序算法,并讨论它们的实现细节、性能特点以及适用场景。 1. **希尔排序(Shell Sort)**: 希尔排序是一种基于插入排序的改进算法,通过设置间隔序列(也...