快速排序模板

快速排序模板
快速排序是基于二分法的思想,将所要排序的一串数字不断进行二分,将每一个数字找到自己应在的位置,最终实现排序。快速排序的时间复杂度很小,平均时间复杂度为O(NlogN)

     '''c
                #include <stdio.h>
                #include <iostream>
                using namespace std;
                int a[1005]; 
                void qu
    
    icksort(int left,int right)
            {
            	int i,j,t,temp;
            	if(left>right)
            	return;
            	
            	temp=a[left];//temp中贮存的就是基准数
            	i=left;
            	j=right;
            	while(i!=j)
            	{//这一部分的先后顺序很重要,必须先从不是基准数的一端开始判断,这样,最后的一步交换基准数,才能将符合的数字归位
            		while(a[j]>=temp&&i<j)
            		{
            			j--;
            		}
            		while(a[i]<=temp&&i<j)
            		{
            			i++;
            		}//该模板是将数字从小到大排序
            		if(i<j)
            		{
            			t=a[i];
            			a[i]=a[j];
            			a[j]=t;
            		}
            	 } 
            	 a[left]=a[i];
            	 a[i]=temp;
            	 
            	 quicksort(left,i-1);//继续处理基准数左边部分,是一个递归过程
            	 quicksort(i+1,right);//继续处理基准数右边部分,是一个递归过程
      
    
              	 return;
                }
int main()
{
	int n;
	cin >> n;
	for(int i=0;i<n;i++)
	{
		cin >> a[i];
	}
	quicksort(0,n-1);//调用快速排序
	for(int i=0;i<n;i++)
	{
		cout <<a[i];
	}
 } 
        '''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值