快速排序:

具体代码:

#include<stdio.h>

void swap(int *a,int *b)
{
	int temp=0;
	temp=*a;
	*a=*b;
	*b=temp;
}

void quickSort(int *begin,int *end)
{
	int *p =begin;
	int *q=end;      //记录起始位置

	int *k=begin;    //&a[0]
	while(begin<end) //相遇时停止
	{
		while(begin<end&&*end>=*k)
		{
			end--;
		}
		while(begin<end&&*begin<=*k)
		{
			begin++;
		}
		swap(begin,end);
	}
	swap(k,begin);
	if(p<q)
	{
		quickSort(p,end-1);     //左边一半
	    quickSort(begin+1,q);   //右边一半
	}

}

void  printArray(int *begin,int *end)
{
	while(begin<=end)
	{
		printf("%d ",*begin);
		begin++;
	}
	putchar('\n');
}

int main(void)
{
	int a[]={3,5,7,1,2,8,9,0};
	int len=sizeof(a)/(sizeof a[0]);
	quickSort(a,a+len-1);
	printArray(a,a+len-1);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值