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

排序算法---交换排序(冒泡排序、快速排序)

 
阅读更多

#include <stdio.h>
void bubble_sort(int a[], int n)
{
        int i,j,tmp;
        for(i=0;i<n-1;i++)
                for(j=0;j>n-1-i;j++)
                        if(a[j]>a[j+1])
                        {
                                tmp=a[j];
                                a[j]=a[j+1];
                                a[j+1]=tmp;
                        }
}
int partition(int a[], int low, int high)
{
        int pivot=a[low];
        while(low<high)
        {
                while(low<high && a[high]>=pivot)--high;
                a[low]=a[high];
                while(low<high && a[low]<=pivot)++low;
                a[high]=a[low];
        }
        a[low]=pivot;
        return low;
}
void qsort(int a[], int low, int high)
{
        int pivot;
        if(low<high)
        {
                pivot=partition(a,low,high);
                partition(a,low,pivot-1);
                partition(a,mid+1,high);
        }
}
void quick_sort(int a[], int n)
{
        qsort(a,0,n-1);
}
 
分享到:
评论

相关推荐

    C语言排序算法---冒泡排序法

    在实际应用中,冒泡排序效率较低,时间复杂度为O(n^2),对于大数据量或性能要求高的场景,通常会选择其他更高效的排序算法,如快速排序、归并排序或堆排序等。然而,由于其简单易懂,冒泡排序在教学和理解排序算法...

    排序算法 -- 冒泡排序

    冒泡排序是一种基础且经典的排序算法,它的基本思想是通过不断地交换相邻的逆序元素,使得每一轮排序后,最大的元素“浮”到数组的末尾。这个过程就像水底下的气泡逐渐升至水面一样,因此得名“冒泡排序”。 在Java...

    FPGA并行快速排序算法-位宽可设

    快速排序是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别...

    c++排序算法-冒泡排序

    冒泡排序是一种基础且经典...在实际应用中,更高效的排序算法如快速排序、归并排序和堆排序通常更受欢迎,尤其是在处理大数据集时。不过,了解和掌握冒泡排序有助于理解排序算法的基础,以及如何通过优化提升算法性能。

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

    冒泡排序算法是一种简单的排序算法,它的工作原理是通过不断地比较相邻元素,并交换它们以达到排序的目的。冒泡排序算法的时间复杂度为O(n^2),因此它适合小规模的数据排序。 2.选择排序算法 选择排序算法也是一种...

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

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

    快速排序算法和冒泡排序效率对比

    快速排序和冒泡排序是两种常见的排序算法,它们在计算机科学中扮演着重要的角色,特别是在数据处理和优化程序性能方面。本篇文章将深入探讨这两种排序算法的原理、效率以及它们在C#编程语言中的实现。 首先,让我们...

    C#-基于C#实现的冒泡排序算法-Bubble-Sort.zip

    冒泡排序是一种基础且历史悠久的排序算法,它通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们的位置,来逐步将序列中的大值“冒”到序列的末尾。在C#中实现冒泡排序,可以深入了解C#的基础语法、控制流...

    VC++多线程实现三种排序算法比较----冒泡排序、快速排序、归并排序

    本篇文章主要探讨了如何在VC++环境中利用多线程技术来实现三种经典的排序算法:冒泡排序、快速排序和归并排序,并对它们的性能进行了比较。 首先,冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次...

    基于python的排序算法-冒泡排序Bubble Sort

    冒泡排序(Bubble Sort)是一种简单的排序算法,其工作原理是通过重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列...

    详解Java常用排序算法-快速排序

    快速排序(Quick Sort)是一种分治思想的排序算法,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后再分别对这两部分记录继续进行排序,以达到...

    java排序算法-大全.rar

    1. **冒泡排序**:冒泡排序是一种简单直观的排序算法,通过不断交换相邻的错误顺序元素来逐步完成排序。它重复地走访过要排序的元素,依次比较每一对相邻元素,如果它们的顺序错误就把它们交换过来。走访元素的工作...

    c#的算法 选择排序 冒泡排序 快速排序 插入排序 。。。

    根据给定的信息,本文将详细解释C#中的几种基本排序算法:选择排序、冒泡排序、快速排序、插入排序、希尔排序以及归并排序的基本原理和实现方式。 ### 一、选择排序(Selection Sort) #### 算法原理 选择排序是一...

    C++语言的算法实现包括插入排序冒泡排序堆排序快速排序

    本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...

    选择排序-插入排序-快速排序-冒泡排序

    - 冒泡排序是最简单的排序算法之一,通过不断地交换相邻的逆序元素来逐步将大的元素“冒”到序列的顶端。每一轮排序会确定一个最大(或最小)元素的位置。 - 冒泡排序的时间复杂度同样为O(n²),空间复杂度为O(1)...

    PHP-基于php实现的冒泡排序算法-BubbleSort.zip

    冒泡排序是一种基础且经典的排序算法,其工作原理是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序(如从小到大、从大到小)错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也...

    排序算法 - Axb的自我修养1

    - 交换排序:如冒泡排序和快速排序。 - 选择排序:如简单选择排序和堆排序。 2. 非基于比较的排序算法:这类算法不依赖于元素间的比较,而是利用其他特性进行排序。例如,计数排序要求数据范围较小,基数排序...

    排序算法--免费

    本文将深入探讨标题和描述中提到的一些基本排序算法,包括选择排序、冒泡排序、插入排序、希尔排序、堆排序、快速排序以及归并排序,并结合C++编程语言进行讲解。 1. **选择排序(Selection Sort)** - 选择排序是一...

    Java后端算法-冒泡排序和选择排序对比

    而对于大规模数据,无论是冒泡排序还是选择排序,效率都不如更高级的排序算法,如快速排序、归并排序或堆排序。 总的来说,冒泡排序和选择排序都是简单的排序算法,适合教学和理解排序的基本原理。在实际开发中,...

Global site tag (gtag.js) - Google Analytics