#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排序算法——归并排序
四种排序算法,插入排序 折半排序 快速排序 冒泡排序,c语言编写,可执行
以从小到大排序为例,选择排序是从某一列数字当中选出最小的数字与第一个位置交换,在从第二个数字开始寻找第二小的数字与第二个位置交换,以此类推,直至最后一个数字交换完毕,排序完成
快速排序 * 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组不同...
五种内部排序算法性能比较, 1.直接插入排序算法。...5.快速排序。分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果。以c语言控制台画出的表格形式呈现。
排序算法是一种基本并且常用的算法。... 第四部分是我送给大家的一个餐后的甜点——一个基于模板的通用快速排序。由于是模板函数 可以对任何数据类型排序(抱歉,里面使用了一些论坛专家的呢称)。
各种排序算法——直接顺序排序,希尔排序,起泡排序,快速排序,简单选择排序,筛选法调整堆,堆排序,一次归并,一趟归并,归并排序的非递归算法……
基于mfc做的排序,包括快速排序,堆排序,希尔排序,插入排序,选择排序,冒泡排序等……
快速排序有很多不同的算法来解决,在此我是用C++来编写这个程序的,根据快速排序的算法思想,很容易将此问题解决。还可以运用非递归的方法解决,但是我不熟练。
快速排序 实验数据:input.txt(共100个数据) ——要求按从小到大进行排序 将排好序的数据输出到output.txt文件中
当我们谈论算法的效率时,时间复杂度是一个关键的概念。它告诉我们随着输入规模增长,算法执行所需的时间如何增加。...让我们通过比较两个经典的排序算法——冒泡排序和快速排序——来探讨时间复杂度的大小关系。