`
473687880
  • 浏览: 487414 次
文章分类
社区版块
存档分类
最新评论

排序算法——快速排序

 
阅读更多
快速排序算法,以升序为例

操作系统:ubuntu
编译软件:gcc
结果截图:
源代码:
#include<stdio.h>

void quickSort(int *,int,int);
int findPoss(int *,int,int);

int main()
{
int i;
int arry[] = {8,9,0,-3,6,7,-11};

quickSort(arry,0,6);

printf("After sorted:\n");
for(i=0;i<7;i++)
  printf("%d ",arry[i]);
printf("\n");
return 0;
}

//快速排序函数,通过递归实现
void quickSort(int *a,int low,int high)
{
int pos;

if(low < high)
{
  pos = findPoss(a,low,high);
  quickSort(a,low,pos-1);
  quickSort(a,pos+1,high); 
}
return ;
}

//该函数返回分割点数值所在的位置,a为待排序数组的首地址,
low刚开始表示排序范围内的第一个元素的位置,逐渐向右移动,
high刚开始表示排序范围内的最后一个位置,逐渐向左移动

int findPoss(int *a,int low,int high)
{
int val = a[low];
while(low < high)
{
  while(low=val)
     high--;
  a[low] = a[high];

  while(low<=val)
     low++;
  a[high] = a[low];     
}

//此时low=high
a[low] = val;
return low;
}


分享到:
评论

相关推荐

    算法可视化系列——排序算法——快速排序

    NULL 博文链接:https://wojiaolongyinong.iteye.com/blog/1868188

    Python排序算法详解

    Python排序算法详解 Python排序算法——冒泡排序 Python排序算法——插入排序 Python排序算法——选择排序 Python排序算法——快速排序 Python排序算法——归并排序

    四种排序算法——数据结构实验

    四种排序算法,插入排序 折半排序 快速排序 冒泡排序,c语言编写,可执行

    排序算法——选择排序.docx

    以从小到大排序为例,选择排序是从某一列数字当中选出最小的数字与第一个位置交换,在从第二个数字开始寻找第二小的数字与第二个位置交换,以此类推,直至最后一个数字交换完毕,排序完成

    java算法——快速排序

    快速排序 * 1.i=left,j=right,将基准数挖出形成第一个坑a[i]; * 2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]; * 3.i++由前向后找比它大的数,找到后挖出此数填到前一个坑a[j]中 * 4.以i为中线,...

    常用排序算法——冒泡 选择 插入 快速

    本文介绍了学习各种语言时,经典的几种算法的详细说明,对我们初学者应该有很大的帮助! 本资源为转载,版权属原作者!

    舍伍德——快速排序源码报告和算法分析

    舍伍德——快速排序源码报告和算法分析 有需要的朋友看下

    数据结构课设——快速排序与冒泡排序算法比较

    #include #include class Array{ public: Array(int Size=150);//构造函数 ~Array() {delete[]T;}// 析构函数 //取数组长度 int qdivde(int low,int high); void print(); void exchange(int i,int j);...

    算法与数据结构——快速排序

    算法与数据结构——快速排序

    程序员实用算法——源码

     5.7 小结:选择一种排序算法  5.8 资源和参考资料 第6章 树  6.1 二叉树  6.1.1 树查找  6.1.2 节点插入  6.1.3 节点删除  6.1.4 二叉查找树的性能  6.1.5 AVL树  6.2 红黑树  6.3 伸展树  ...

    贪心算法——背包问题

    贪心算法中,背包问题的源代码。可以编译运行,用快速排序实现的。

    排序算法总结——最全、最新的排序算法

    里面包括了1插入排序(Insertion Sort)、2选择排序、3冒泡排序(BubbleSort)、4快速排序(Quick Sort)、5堆排序(Heap Sort)

    数据结构课程设计——排序算法分析

    (1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100(原始数据不少于100 ,可以用1000,这样方便测试出运行时间),表中数据随机产生,至少用5组不同...

    内部排序算法性能比较———c++

    五种内部排序算法性能比较, 1.直接插入排序算法。...5.快速排序。分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果。以c语言控制台画出的表格形式呈现。

    排序算法 各种算法的综合

    排序算法是一种基本并且常用的算法。... 第四部分是我送给大家的一个餐后的甜点——一个基于模板的通用快速排序。由于是模板函数 可以对任何数据类型排序(抱歉,里面使用了一些论坛专家的呢称)。

    C++各种排序算法实现

    各种排序算法——直接顺序排序,希尔排序,起泡排序,快速排序,简单选择排序,筛选法调整堆,堆排序,一次归并,一趟归并,归并排序的非递归算法……

    数据结构与算法——排序

    基于mfc做的排序,包括快速排序,堆排序,希尔排序,插入排序,选择排序,冒泡排序等……

    分治策略——快速排序

    快速排序有很多不同的算法来解决,在此我是用C++来编写这个程序的,根据快速排序的算法思想,很容易将此问题解决。还可以运用非递归的方法解决,但是我不熟练。

    c语言快速排序算法(算法设计与分析第2版)王晓东

    快速排序 实验数据:input.txt(共100个数据) ——要求按从小到大进行排序 将排好序的数据输出到output.txt文件中

    排序算法优化:时间复杂度比较及性能提升技巧.md

    当我们谈论算法的效率时,时间复杂度是一个关键的概念。它告诉我们随着输入规模增长,算法执行所需的时间如何增加。...让我们通过比较两个经典的排序算法——冒泡排序和快速排序——来探讨时间复杂度的大小关系。

Global site tag (gtag.js) - Google Analytics