快速排序实现 – Python

快速排序实现 – Python,第1张

概述我试图在 Python中实现快速排序算法( https://en.wikipedia.org/wiki/Quicksort).我在C中成功实现了算法,但它在Python中给出了奇怪的结果. 这是C代码: //Quicksort implementation//Anchit Virmani - 27/10/2015 02:07 AM#include <iostream>using namesp 我试图在 Python中实现快速排序算法( https://en.wikipedia.org/wiki/Quicksort).我在C中成功实现了算法,但它在Python中给出了奇怪的结果.

这是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)

What is wrong with the Python implementation ?

解决方法 好吧,如果你逐行比较C和Python版本,你会注意到这一行

arr[l],arr[l]

在Python中与C不同.你选择的支点也很奇怪.

总结

以上是内存溢出为你收集整理的快速排序实现 – Python全部内容,希望文章能够帮你解决快速排序实现 – Python所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存