这是C代码:
//Quicksort implementation//Anchit Virmani - 27/10/2015 02:07 AM#include <iostream>using namespace std;voID swap(int* a,int* b){ int t=*a; *a=*b; *b=t;}voID quick_sort(int arr[],int l,int r){ if(l<r) { int p=arr[l]; int i=l+1; for(int j=(l+1);j<=r;j++) { if(arr[j]<p) { swap(&arr[j],&arr[i]); i++; } } swap(&arr[l],&arr[i-1]); quick_sort(arr,l,i-2); quick_sort(arr,i,r); }}int main() { int arr[3]={2,1,3}; quick_sort(arr,2); for(int i=0;i<3;i++) { cout<<arr[i]<<" "; } return 0;}
这是我在Python中编写的代码:
def quick_sort(arr,r): if(l<r): p=arr[l] i=l+1 j=0 for j in range(l+1,r+1): if arr[j]<p: arr[j],arr[i]=arr[i],arr[j] i=i+1 arr[l],arr[r]=arr[r],arr[l] quick_sort(arr,i-2) quick_sort(arr,r)arr=[4,3,2,1]quick_sort(arr,3)print(arr)
解决方法 好吧,如果你逐行比较C和Python版本,你会注意到这一行What is wrong with the Python implementation ?
arr[l],arr[l]
在Python中与C不同.你选择的支点也很奇怪.
总结以上是内存溢出为你收集整理的快速排序实现 – Python全部内容,希望文章能够帮你解决快速排序实现 – Python所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)