`
shifulong
  • 浏览: 59217 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

排序篇:quick

阅读更多
快速排序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库文件(可选升序降序)GF-quick-Sort.zip

    本篇文章将深入探讨TIA博途SCL语言中的快速排序算法,以及如何将其封装为一个全局功能块(FC)库文件,以便在项目中重复使用,并支持升序或降序排列。 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. ...

    Java排序小结:常用的排序方法

    本篇文章将详细解析Java中常见的排序方法,结合"javaeye 收集的java排序小结"资料,旨在帮助读者理解和掌握这些排序算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过重复遍历数组,比较...

    算法设计与分析-1排序算法性能分析-冒泡/选择/插入/合并/快速排序-pre ppt

    本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...

    用javascript实现的十大排序算法详解

    本篇文章将深入探讨如何使用JavaScript实现十大经典排序算法,帮助开发者更好地理解和运用这些算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序方法,通过重复遍历待排序的数组,比较相邻元素并交换...

    算法排序实验报告 包括对五种排序算法的算法实现时间的比较

    这篇实验报告主要关注了五种不同的排序算法:冒泡排序、插入排序、选择排序、归并排序和快速排序。在报告中,作者通过C++编程实现了这些算法,并进行了实际的性能比较,特别是在处理不同规模(N=1000, 10000, 100000...

    java 排序 面试题

    本篇文章将深入分析几种基本的排序算法,并通过具体的Java代码示例来阐述每种算法的特点及其应用场景。 #### 1. 插入排序 (Insertion Sort) **定义与原理**:插入排序是一种简单的排序算法,它的工作原理是通过...

    用C实现快速排序、希尔排序、归并排序等排序算法

    本篇将详细探讨快速排序、希尔排序和归并排序这三种在C语言中常见的排序算法。 首先,我们来看快速排序(Quick Sort)。快速排序由C.A.R. Hoare在1960年提出,其基本思想是分治法。它的核心是选择一个基准元素,...

    数据结构 各种排序所需时间的比较

    本篇文章将详细探讨Vc++环境下几种常见排序算法的时间复杂度,帮助你理解不同排序算法在性能上的差异。 首先,我们来介绍几种基础的排序算法: 1. 冒泡排序(Bubble Sort):冒泡排序是一种简单的排序算法,它重复...

    【排序结构5】 基于比较的内部排序总结

    本篇主要探讨基于比较的内部排序方法,即通过比较元素之间的关系来确定排序顺序。这些排序算法广泛应用于各种场景,如数据库、数据分析和算法竞赛。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,...

    给定N个不同的整数,要求对这N个整数按如下规则排序并输出

    对于大规模且无特定顺序的数据,快速排序(Quick Sort)、归并排序(Merge Sort)或堆排序(Heap Sort)等更高效的方法可能更为适用。 1. 插入排序:这是一种简单直观的排序算法,它的工作原理是通过构建有序序列,...

    算法学习笔记

    - Quick Sort(快速排序):通过一个划分操作将数据分成独立的两部分,其中一部分的所有数据都比另一部分小。 - Heap Sort(堆排序):将数组构建为一个最大堆,然后逐个将堆顶元素(最大值)与数组末尾元素交换。 -...

    快速排序与归并排序的算法比较实验报告

    这篇实验报告将深入探讨两种经典的排序算法——快速排序和归并排序,通过对它们在Java环境中的实现和性能测试,揭示它们在处理不同规模数据时的效率差异。 **快速排序(Quick Sort)** 快速排序由C.A.R. Hoare在...

    Java ArrayList实现的快排,归并排序,堆排序

    本篇将重点讲解如何利用ArrayList实现快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort)这三种经典的排序算法,并探讨它们的原理、优缺点以及在实际应用中的选择。 **快速排序(Quick Sort)**...

    对半查找,选择排序,冒泡排序和快速排序的Objective-C实现

    本篇将详细探讨对半查找(Binary Search)、选择排序(Selection Sort)、冒泡排序(Bubble Sort)和快速排序(Quick Sort)在Objective-C中的实现方式。 首先,让我们从对半查找开始。对半查找是一种效率极高的...

    排序算法性能分析

    本篇文章将详细分析八种常见的排序算法,探讨它们的执行效率,以及关键语句的执行次数。 1. 冒泡排序(Bubble Sort) 冒泡排序是最基础的排序算法之一,通过不断交换相邻的逆序元素实现排序。其平均时间复杂度为O(n...

    数据结构排序算法的比较

    本篇文章将通过具体的实验来对比几种经典的排序算法:插入排序、起泡排序、选择排序、快速排序、堆排序以及归并排序。实验将利用随机函数产生30000个随机整数,并采用这些排序算法对数据进行排序,同时记录每种算法...

    js代码-常见排序算法:比较排序

    本篇我们将深入探讨JavaScript中实现的几种比较排序算法,并分析它们的工作原理、性能以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最基础的排序算法之一,通过不断交换相邻的逆序元素来逐步完成排序。它...

    最经典的8大排序算法总结

    在本篇总结中,将探讨8种经典的排序算法,分别是冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、二叉树排序和基数排序。 1. 冒泡排序(Bubble Sort): 冒泡排序是一种简单的排序算法。它重复地遍历要...

    .net 实现常用经典排序算法

    本篇将详细讲解希尔排序、堆排序和快速排序这三种经典的排序算法,并讨论它们的实现细节、性能特点以及适用场景。 1. **希尔排序(Shell Sort)**: 希尔排序是一种基于插入排序的改进算法,通过设置间隔序列(也...

Global site tag (gtag.js) - Google Analytics