`
ackerman
  • 浏览: 72698 次
  • 性别: 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语言是实现

    交换排序:快速排序quicksort,冒泡排序bubblesort 选择排序:直接选择排序selectionsort,堆排序maxheapsort 插入排序:直接插入排序insertsort,希尔排序shellsort 合并排序:归并排序mergesort

    快速、冒泡排序算法比较

    试通过随机数据比较快速排序、起泡排序各算法的关键字比较次数和关键字移动次数。 (1)待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字...

    经典排序算法,有选择排序,冒泡排序,交换排序,谢尔排序,插入排序基数排序

    经典排序算法,有选择排序,冒泡排序,交换排序,谢尔排序,插入排序基数排序

    7种常用排序算法实现(C++)(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序以及快速排序)

    本文件是7种常用排序算法的实现(C++),包括冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序以及快速排序。代码详细有注释且有测试用例。

    冒泡,快速排序的比较

    冒泡,快速排序算法比较试分别实现冒泡排序和非递归形式的快速排序算法,并通过随机数据比较两种排序算法中关键字的比较次数和移动次数。 (1)待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;至少...

    快速排序算法C语言程序.zip

    快速排序算法C语言程序,快速排序算法和冒泡排序法类似,都是基于交换排序思想,但是快速排序算法对冒泡排序算法进行改进,从而使其具有更高的执行效率。

    Java实现常用排序算法

    实现了四类排序算法,插入排序、交换排序、选择排序、归并排序,详情请看文档,其中 树形选择排序算法--选择排序、 堆排序--选择排序 这两种算法还没实现,有兴趣的自行解决

    基于C语言数据结构二叉树建立遍历冒泡排序快速排序等的毕业设计,二叉树不仅是一种数据结构,而且还是许多算法的基础

    冒泡排序和快速排序是两种常用的排序算法,它们的实现依赖于对数据的遍历。因此,本毕设旨在通过二叉树的遍历来实现这两种排序算法的实现。 ## 二、研究内容 本毕设将包括以下内容: 1. 二叉树的建立和遍历:包括...

    数据结构 排序算法的比较

    排序是计算机程序设计中的一种重要操作。它的功能是将一个数据元素(或记录)的任意序列,重新排列...算法主要包括:插入排序、折半插入排序、选择排序、冒泡排序、希尔排序、快速排序、堆排序、归并排序、基数排序等。

    交换类排序(内有经典的冒泡排序和快速排序C++代码实现)

    讲解了交换类排序的含义,并有代表:冒泡排序和快速排序的算法实现和讲解,和复杂度分析。

    数据机构综合课设内部排序算法比较.docx

    冒泡排序;快速排序;简单选择排序;堆排序;归并排序;基数排序。 (2)待排序表的表长不少于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和...

    C#排序算法总结

    C#排序算法总结:交换排序:最基础的冒泡排序,冒泡排序的优化版选择排序和快速排序,插入排序:直接插入排序和折半插入排序。

    8大排序算法

    程序员可以参考的8大排序算法。1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序)

    常用数据结构及其算法的Java实现

    八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序在内的八种排序算法,同时对各种算法的基本特征做出了详细分析: - 算法基本思想 - 算法的...

    python常用排序算法.docx

    在Python中,常用的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。下面将对这些排序算法进行详细的介绍。 1. 冒泡排序 冒泡排序是一种简单的排序算法,它的基本思想是通过不断交换相邻的元素,...

    数据结构排序算法介绍

    数字排序法:通常来说有五大类方法:插入排序(直接插入排序、希尔排序等)、交换排序(冒泡排序、快速排序)、选择排序(简单选择排序、树形选择排序、堆排序)、归并排序、基数排序

    C#,冒泡排序算法(Bubble Sort)的源代码与数据可视化

    常见的四种排序算法是:简单选择排序、冒泡排序、插入排序和快速排序。其中的快速排序的优势明显,一般使用递归方式实现,但遇到数据量大的情况则无法适用。实际工程中一般使用“非递归”方式实现。本文搜集发布四种...

    常用排序算法分析与实现(Java版)

    用java对常用排序算法进行分析与实现.包含: 插入排序 直接插入排序、希尔排序 • 选择排序 简单选择排序、堆排序 • 交换排序 冒泡排序、快速排序 • 归并排序 • 基数排序

    排序算法演示大全

    快速排序 取其中一个值,把小于此值的放到其左边,大于此值的放到其右边 如此递归 直接插入排序 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序...

    Java实现几种常见排序方法-直插、冒泡、选择、快排、堆排等

    日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一...

Global site tag (gtag.js) - Google Analytics