`

各种排序算法2

 
阅读更多

/**
  * 快速排序
  * 思路:选择中间数作为基准,然后i从左向右找到第一个大于等于这个基准的数,j从右向左找到第一个小于等于该基准的数,直到i>=j,交换这两个数。
  * 然后递归对左边i个数和右边n-1-i个数进行相同排序。
  */
 public int[] quickSort(int[] iAry, int left, int right) {
  if (left < right) {
   int midNum = iAry[(left + right) / 2];
   int i = left - 1;
   int j = right + 1;
   while (true) {
    while (iAry[++i] < midNum);
    while (iAry[--j] > midNum);
    if (i >= j) {
     break;
    }
    swap(iAry, i, j);
   }
   quickSort(iAry, left, i - 1);
   quickSort(iAry, j + 1, right);
  }
  return iAry;
 }

 private int[] createAry() {
  Random rand = new Random();
  int[] ary = new int[5];
  for (int i = 0; i < ary.length; i++) {
   ary[i] = rand.nextInt(100);
  }
  return ary;
 }

 private void printAry(int[] ary) {
  System.out.println(Arrays.toString(ary));
 }

 private void swap(int[] iAry, int num1, int num2) {
  int temp = iAry[num1];
  iAry[num1] = iAry[num2];
  iAry[num2] = temp;
 }

 @Test
 public void sortTest() {
  int[] iAry = createAry();
  System.out.print("原始数组:");
  printAry(iAry);

   iAry = bubbleSort(iAry);
   System.out.print("冒泡排序后的数组:");
   printAry(iAry);
  
   iAry = selectSort(iAry);
   System.out.print("选择排序后的数组:");
   printAry(iAry);
  
   iAry = insertSort(iAry);
   System.out.print("插入排序后的数组:");
   printAry(iAry);

分享到:
评论

相关推荐

    各种排序算法比较

    ### 各种排序算法比较 #### 一、稳定性比较 稳定性是排序算法中一个重要的特性,指的是相等的元素在排序前后保持原有的相对位置不变。根据文档提供的信息,我们可以总结出以下结论: - **稳定排序**:插入排序、...

    各种排序算法的实验(源代码+实验报告)

    本资源“各种排序算法的实验(源代码+实验报告)”提供了一个全面的平台,用C++语言实现了多种经典的排序算法,并附带了详细的实验报告,便于学习者理解和掌握这些算法。 1. **快速排序**:由英国计算机科学家C.A.R...

    数据结构 各种排序算法

    在C++编程中,实现各种排序算法能够帮助理解它们的工作原理,并且可以对比不同算法在不同情况下的性能。以下是几种常见的排序算法的详细说明: 1. 直接插入排序(Insertion Sort): 直接插入排序是一种简单的排序...

    各种排序算法性能的比较

    各种排序算法性能的比较 在计算机科学中,排序算法是将一组数据按照一定的顺序排列的过程。排序算法的性能直接影响到数据处理和分析的效率。本课程设计中,我们将对八种内部排序算法的性能进行分析和比较。 1. ...

    各种排序算法比较(java实现)

    在IT领域,排序算法是计算机科学中的基础但至关重要的部分,尤其在数据处理和数据分析中起着关键作用。本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并...

    各种排序算法的优缺点

    排序算法概述 排序算法是计算机科学中的一种基本算法,用于对数据进行排序。常见的排序算法有冒泡排序、选择排序、插入排序、缩小增量排序、快速排序、箱排序等。每种算法都有其优点和缺点,选择合适的排序算法取决...

    排序算法 各种算法的综合

    【排序算法】是计算机科学中的基础且至关重要的概念,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。...了解各种排序算法的优缺点和时间复杂度,能帮助我们做出更明智的选择,以提高程序的运行效率。

    各种排序算法大全

    本资源“各种排序算法大全”集合了多种经典的排序算法,旨在帮助初学者理解和掌握排序的基本原理,并为编程人员提供实用的工具类。下面我们将深入探讨这些排序算法的核心概念及其应用。 1. 冒泡排序(Bubble Sort)...

    最快的排序算法 计算机最快的算法-史上14个最快速算法:孩子的计算能力爆表!大脑堪比计算机!...,排序算法数据结构

    冒泡排序算法的时间复杂度为O(n^2),因此它适合小规模的数据排序。 2.选择排序算法 选择排序算法也是一种简单的排序算法,它的工作原理是通过选择最小或最大元素,并将其与第一个元素交换,以达到排序的目的。选择...

    各种排序算法合集

    在计算机科学领域,排序算法是数据结构与算法中不可或缺的一部分,它们用于将一组无序的数据按照特定顺序排列。本合集包含多种经典的排序算法,每种算法都是通过继承自一个基类并实现其具体逻辑来实现的。下面,我们...

    各种排序算法小结

    ### 各种排序算法小结 #### 一、引言 排序算法是在计算机科学中非常基础且常用的一类算法。由于在实际应用中往往需要处理大量数据,因此对排序算法的效率有着较高要求。通常,我们会关注算法的时间复杂度来评估其...

    常用的排序算法总结(各种内部排序算法和外部排序算法)

    排序算法是计算机科学中最基础和重要的算法之一,用于将一组数据按照特定的顺序进行排列。本文将对几种常见的内部排序算法和外部排序算法进行详细总结。 首先,排序的基本定义是:给定一个包含n个记录的序列,其...

    各种排序算法大全排序 各种排序算法大全

    本资源集合提供了各种排序算法的C语言实现,这对于理解和优化代码的运行效率至关重要。下面,我们将详细讨论这些排序算法及其特点。 1. 冒泡排序(Bubble Sort):冒泡排序是最基础的排序算法之一,通过不断交换...

    排序算法包(堆排序,快排等各种排序算法)

    排序算法包 各种排序算法 java源 堆排序,快排等各种排序算法

    自考数据结构各种排序算法

    冒泡排序同样具有O(n^2)的时间复杂性,也是稳定的排序算法。 3. **快速排序**: 快速排序是由C.A.R. Hoare提出的,它是一种分治策略的典型应用。`quicksort`函数通过`quickpass`函数实现一趟划分操作,将数组分为...

    排序技术,整合各种排序算法思想

    本文将深入探讨几种常见的排序算法:选择排序、冒泡排序、希尔排序和堆排序,以便于理解它们的工作原理和应用场景。 **选择排序(Selection Sort)** 选择排序是一种简单直观的排序算法。它的工作原理是每一次从待...

    各种排序算法的c实现

    各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法

    各种排序算法的详细分析

    此为一个利用Java语言编写的排序分析程序,程序中统计了各种排序算法(冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、归并排序、基数排序)的分析,ppt中包含各种排序算法的分析,附上动画演示(来自...

    总结了各种排序算法,并用C++代码实现,并有演示

    本资源"总结了各种排序算法,并用C++代码实现,并有演示",提供了丰富的学习材料,包括不同类型的排序算法以及它们的C++实现,还有可能的可视化演示,帮助理解每种算法的工作原理。 首先,让我们逐一了解常见的排序...

Global site tag (gtag.js) - Google Analytics