代码如下:
public class QuickSortTest { public static void main(String[] args) { int[] arr = {9,8,10,7,5,6,3,2,4,-1}; SortUtil.showArr(arr); quickSort(arr,0,arr.length -1); SortUtil.showArr(arr); } public static void quickSort(int[] arr,int low ,int high) { int i = low; int j = high; int temp = arr[i]; while(i < j) { while (i < j && temp < arr[j]) { j--; } if (i < j) { arr[i] = arr[j]; } while (i < j && temp > arr[i]) { i++; } if (i < j) { arr[j] = arr[i]; } } arr[i] = temp; if (low < i - 1) { quickSort(arr,low,i -1); } if (j + 1 < high) { quickSort(arr,j + 1,high); } } }
相关推荐
C语言对磁盘文件进行快速排序简单实例 快速排序(quick sort)是由C.A.R.Hoare发明并命名的,这种排序被认为是目前最好的一种排序算法。快速排序基于交换排序,与同样的基于交换排序的冒泡排序法相比,其效果非常...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法...总的来说,快速排序算法是理解分治策略的重要实例,通过VC6.0的实践,可以更好地掌握算法的实现细节和调试技巧。
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治法的策略,通过选取一个“基准”元素,将数组分为两个子数组,使得左边的元素都小于基准,右边的元素都大于基准,然后对这两...
以下是一个简单的C语言快速排序函数示例: ```c void quick_sort(int arr[], int left, int right) { if (left ) { int pivot = partition(arr, left, right); quick_sort(arr, left, pivot - 1); quick_sort...
总的来说,快速排序和冒泡排序都是排序算法的重要实例,它们代表了不同的时间复杂度级别和设计思路。在C#编程中,理解并掌握这两种算法有助于我们更好地理解和优化程序性能,尤其是在处理大量数据时。同时,这也为...
### c语言 - 快速排序 #### 知识点概览 1. **递归算法的概念及应用** 2. **快速排序的基本原理** 3. **快速排序的实现步骤** 4. **快速排序的时间复杂度分析** 5. **快速排序的空间复杂度分析** 6. **快速排序与...
本节将深入探讨两种常见的排序算法:冒泡排序和快速排序。 首先,我们来详细讲解冒泡排序。冒泡排序是一种简单直观的排序算法,它的基本思想是通过重复遍历待排序的数列,依次比较相邻元素并交换位置,使得较大的...
以下是一个简单的C++模板类实现快速排序的示例: ```cpp template void quickSort(T arr[], int left, int right) { if (left ) { int pivotIndex = partition(arr, left, right); quickSort(arr, left, pivot...
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治策略,通常比其他O(n^2)时间复杂度的排序算法更快,平均时间复杂度为O(n log n)。在最坏的情况下,即输入数组已经完全排序或...
以下是一个简单的C++快速排序函数实现: ```cpp #include using namespace std; void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } int partition(int arr[], int low, int high) { int pivot = ...
下面是一个简单的C++实现快速排序的步骤: 1. **选择基准**: 可以选取第一个元素、最后一个元素或者随机选取元素作为基准。 2. **分区操作**: 使用`i`和`j`两个指针,`i`初始指向数组的第一个元素,`j`初始指向数组...
直接插入、折半插入、冒泡、快速、简单选择等排序方法 用c语言实现 代码运行正常 不会有任何的问题
以下是一个简单的C#快速排序实现示例: ```csharp using System; class QuickSort { public static void Sort(int[] arr, int left, int right) { if (left ) { int pivotIndex = Partition(arr, left, right...
下面是一个简单的Java快速排序算法实现示例: ```java public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low ) { // 找到基准元素的正确位置 int pivotIndex = ...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer)。在这个JAVA版的快速排序示例中,我们将会深入理解如何用Java实现快速排序算法。 首先,...
以下是一个简单的C++代码实现快速排序的例子: ```cpp #include #include using namespace std; int partition(vector<int>& arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的核心思想是分治法,通过一趟排序将待排序的数据分成两个子序列,其中一个序列的所有元素都比另一个序列的元素小,然后对这两个子...
在实际应用中,快速排序的性能通常优于其他简单排序算法,如冒泡排序和插入排序,尤其是在处理大量数据时。但需要注意的是,快速排序在最坏的情况下(即输入数组已经完全排序或逆序)其时间复杂度会退化到O(n^2),...