快速排序

C++

void quicksort(int list[],int m,int n)
{
   int key,i,j,k;
   if( m < n)
   {
      k = (m+n)/2;
      swap(&list[m],&list[k]);
      key = list[m];
      i = m+1;
      j = n;
      while(i <= j)
      {
         while((i <= n) && (list[i] <= key))
                i++;
         while((j >= m) && (list[j] > key))
                j--;
         if( i < j)
                swap(&list[i],&list[j]);
      }
     // 交换两个元素的位置
      swap(&list[m],&list[j]);
     // 递归地对较小的数据序列进行排序
      quicksort(list,m,j-1);
      quicksort(list,j+1,n);
   }
}

Python(未完成)

def quicksort(l):
    if len(l)>1:
        k=int(len(l)/2)
        l[0],l[k]=l[k],l[0]
        key=l[0]
        i=1
        j=len(l)-1
        while i<=j:
            while i<=len(l)-1 and l[i]<=key:
                i+=1
            while 0<=j and l[j]>key:
                j-=1
            if i<j:
                l[i],l[j]=l[j],l[i]
        l[0],l[j]=l[j],l[0]
        quicksort(l[:j])
        quicksort(l[j+1:len(l)])

Python修正版

def quickSort(arg):
    if(arg == []):
        return []
    bigList = []
    smallList = []
    middle = arg[0]
    for i in arg[1:]:
        if i<=middle:
            smallList.append(i)
        else:
            bigList.append(i)
    return quickSort(smallList)+[middle]+quickSort(bigList)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值