package tech.algorithms.sort;
import java.util.Random;
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
// int[] array = { 13, 13, 13, 13, 13, 13, 13, 13, 13,13 };
// int[] array = { 13, 19, 9, 5, 1, 2, 8, 7, 4, 23, 2, 6, 11 };
int[] array = new int[10000];
Random r = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = r.nextInt(100);
}
QuickSort qs = new QuickSort();
qs.sort(array, 0, array.length - 1);
for (int loopIndex = 0; loopIndex < array.length; loopIndex++) {
System.out.println(array[loopIndex]);
}
}
private void sort(int[] array, int bottom, int top) {
if (bottom < top) {
int divdePoint = partition(array, bottom, top);
sort(array, bottom, divdePoint - 1);
sort(array, divdePoint + 1, top);
}
}
private int partition(int[] array, int bottom, int top) {
int divideValue = array[top];
int i = bottom;
for (int loopIndex = bottom; loopIndex <= top; loopIndex++) {
if (array[loopIndex] < divideValue) {
int temp = array[loopIndex];
array[loopIndex] = array[i];
array[i] = temp;
i++;
}
}
int temp = array[top];
array[top] = array[i];
array[i] = temp;
return i;
}
}
分享到:
相关推荐
快速排序(Quick Sort)是由C.A.R. Hoare在1960年提出的,它是一种非常高效的排序算法,其基本思想是分治法。快速排序的基本步骤如下: 1. **选择枢轴元素**:在待排序的数组中选取一个元素作为枢轴,通常选择第一...
快速排序(Quick Sort)是一种高效的排序算法,由C.A.R. Hoare在1960年提出。其基本思想是采用分治法(Divide and Conquer),通过一趟排序将待排记录分割成独立的两部分,其中一部分的所有记录都比另一部分的所有...
在这个名为"Quick sort Analysis.zip"的压缩包中,重点是分析快速排序的确定性与随机化实现。确定性快速排序通常是指每次选取固定的基准元素,如选择第一个或最后一个元素,这样对于相同的输入,排序过程完全可预测...
快速排序(Quick Sort)是一种高效的排序算法,由C. A. R. Hoare在1960年提出。它采用分治法(Divide and Conquer)的策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。快速排序在实现时,...
数据结构,排序算法,快速排序算法的C语言实现, quick sort C qsort.c an c implementation of quick sort
python编写 快速排序 Quick Sort
快速排序(Quick Sort)是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的基本思想是采用分治法(Divide and Conquer),将一个大问题分解为两个或多个相同或相似的子问题,直到最后子问题可以简单的直接求解...
python 一行代码实现的快速排序 quick sort
### 快速排序(Quick Sort) #### 算法原理 快速排序是一种高效的排序算法,其基本思想是采用分治法(divide and conquer)来解决问题。对于待排序的数组A[0]...A[N-1],快速排序通过选择一个基准元素(pivot),通常...
快速排序(Quick Sort)源码及运行示例
快速排序(Quick Sort)作者原版论文,快速排序的作者C.A.R Hoare 发表的原著论文。
算法分析与设计教学课件:Chapter 7 Quick Sort.pptx
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer)。在这个C++实现的快速排序中,我们将深入理解其原理、步骤以及如何用C++语言进行编码。...
private static void sort(Comparable[] a, Comparable[] aux, int l, int r) { if (r ) return; int m = l + (r - l) / 2; sort(a, aux, l, m); // 排序左半部分 sort(a, aux, m, r); // 排序右半部分 ...
return quick_sort(left) + middle + quick_sort(right) # 示例 arr = [3, 6, 8, 10, 1, 2, 1] print(quick_sort(arr)) # 输出: [1, 1, 2, 3, 6, 8, 10] ``` 6. **时间复杂度与空间复杂度**: - **时间复杂度**...
实现快速排序,Implement Quicksort and answer the following questions. (1) How many comparisons will Quicksort do on a list of n elements that all have the same value? (2) What are the maximum and ...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),将一个大问题分解为小问题来解决。快速排序的核心在于选取合适的“基准”元素,并根据这...
鉴于初学C语言或C++时对快速排序算法的了解不够深入,在此上传快速排序的C语言实现代码,该实现代码具有模块化特点,并且在代码中写了注释,并在调试过程中易出错的关键地方做了标注;此外,在代码实现中添加了良好...