数据结构之快速排序
Posted xiaolongdejia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之快速排序相关的知识,希望对你有一定的参考价值。
- 冒泡
- 选择
- 插入
- 快速排序
- 归并排序
实例
? 是有关快速排序的
#include<stdio.h>
#include<malloc.h>
/*
1.先把第一个数在这组数中该在的位置pos找到
2.然后用这pos把数组分成两部分
3.对这两部分重复第一步的操作
*/
//声明函数
void quickorder(int*a, int low, int high);//在low到high的区间内排序
int findpos(int*a, int low, int high);
int main()
int a[6] = 4,-243,6,2,5,2;
quickorder(a, 0, 5);
int i = 0;
for(i;i<=5;i++)
printf("%d\t", a[i]);
return 0;
void quickorder(int*a, int low, int high)
int pos;
if(low<high)
pos = findpos(a, low, high);
quickorder(a, low, pos-1);
quickorder(a, pos+1, high);
int findpos(int*a, int low, int high)
int val= a[low];
while(low<high)
while(low<high&&a[high]>=val)//把比val小的东西踢到左边去
high--;
a[low] = a[high];
while(low<high&&a[low]<= val)//把比val小大的东西踢到右边去
low++;
a[high]= a[low];
//这么一下来,val不仅找到了准确的位置,而且保证其右边均大于它,左边均小于它
a[low]= val;
return high;
以上是关于数据结构之快速排序的主要内容,如果未能解决你的问题,请参考以下文章