Python编程二分法实现冒泡算法+快速排序代码示例

yizhihongxing

Python编程二分法实现冒泡算法+快速排序代码示例

本文将详细介绍如何使用Python编程实现二分法、冒泡算法和速排序算法,并提供两个示例说明。

二分法

二分法是一种常用的查找算法,它的基本想是将有序数组分成两部分,然后判断目标值在哪一部分中,从而缩小查找范围。下面是使用Python实现二分法的代码示例:

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] ==:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

在这个示例,定义了一个binary_search,它接受一个有序数组arr和一个目标值target作为参数。我们使用leftright两个指针来表示数组的左右边界,然后循环中计算中间位置mid。如果arr]等于目标值target,则返回mid。如果arr[mid]小于目标值target,则将左指针left移动到mid + 1的位置。如果arr[mid]大于目标值target,则将右指针right移动到mid - 1的位置。如果没有找到目标值,则返回-1。

示例1:使用二分法查找元素

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
result = binary_search(arr, target)
print(result)

在这个示例中,我们使用二分法查找有序数组arr中元素5。我们调用binary_search函数,并将arrtarget作为参数传递给它。最后,我们打印查找结果。

冒泡算法

冒泡算法是一种简单的排序算法,它的基本思想是比较相邻的元素,如果它们的顺序错误就交换它们。下面是使用Python实现冒泡算法的代码示例:

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

在这个示例中,我们定义了一个bubble_sort函数,它接一个数组arr作为参数。我们使用两个嵌套的循环来遍历数组,并比较相邻的元素。如果它们的顺序错误,就交换它们。最后,我们返回排序后的数组。

示例2:使用冒算法对数组进行排序

arr = [5, 3, 8, 6, 7, 2]
result = bubble_sort(arr)
print(result)

在这个示例中,我们使用冒泡算法对数组arr进行排序。我们调用bubble_sort函数,并将arr作为参数传递给它。最后,我们打印排序后的数组。

快速排序

快速排序是一种常用的排序算法,它的基本思想是选择一个基准元素,将数组分成两部分,一部分小于基准元素,一部分于基准元素,然后递归地对两部分进行排序。下面是使用Python实现快速排序的代码示例:

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

在这个示例中,我们定义了一个quick_sort函数,它接受一个数组arr作为参数。如果数组的长度小于等于1,则返回数组。我们选择中间位置的元素作为基准元素pivot,然后使用列表推导式将数组分成三部分:小于基准元素的部分left、等于基准元素的部分middle和大于基准元素的部分right。最后,我们递归地对leftright进行排序,并将它们与middle合并。

示例3:使用快速排序对数组进行排序

arr = [5, 3, 8, 6, 7, 2]
result = quick_sort(arr)
print(result)

在这个示例中,我们使用快速排序对数组arr进行排序。我们调用quick_sort函数,并将arr作为参数传递给它。最后,我们打印排序后的数组。

以上是使用Python编程实现二分法、冒泡算法和快速排序算法的完整攻略,包括实现和示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python编程二分法实现冒泡算法+快速排序代码示例 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python三种数据结构及13种创建方法总结

    “Python三种数据结构及13种创建方法总结”,主要介绍Python中的三种基本数据结构以及在Python中创建这三种数据结构的13种方法。 一、Python中三种基本数据结构 在Python中,有三种基本数据结构: 列表(List) 字典(Dict) 元组(Tuple) 下面分述这三种数据结构以及如何在Python中创建它们。 二、Python中创建列表…

    python 2023年5月14日
    00
  • 无法从 Explorer [2013] 通过 IDLE 运行 Python – IDLE 的子进程未建立连接

    【问题标题】:Can’t run Python via IDLE from Explorer [2013] – IDLE’s subprocess didn’t make connection无法从 Explorer [2013] 通过 IDLE 运行 Python – IDLE 的子进程未建立连接 【发布时间】:2023-04-05 21:57:02 【问…

    Python开发 2023年4月6日
    00
  • 值得收藏的10道python 面试题

    作为网站的作者,我们推出了一篇名为“值得收藏的10道Python面试题”的文章,旨在帮助学习Python语言的人更好地准备面试。下面将对这篇文章的内容进行完整的讲解,包括题目解析、示例说明和答案解释。 1.判断字符串是否为回文 该题要求判断给定的字符串是否为回文字符串(即正着和倒着读都一样),其解法如下: def is_palindrome(s): &quo…

    python 2023年6月5日
    00
  • Python 实时获取任务请求对应的Nginx日志的方法

    首先,我们需要了解Nginx的日志格式。假设我们的Nginx日志的格式为: $remote_addr – $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"…

    python 2023年6月3日
    00
  • 新手常见Python错误及异常解决处理方案

    新手常见Python错误及异常解决处理方案 在Python编程过程中,新手常常会遇到各种错误和异常,包括语法错误、运行时错误等等。这些错误和异常会导致程序无法正常运行或输出错误结果。本文将介绍一些新手常见的Python错误及异常,并提供解决处理方案。 语法错误(SyntaxError) 语法错误是由于Python代码中不符合语法规则导致的错误。通常是拼写错误…

    python 2023年5月13日
    00
  • python统计多维数组的行数和列数实例

    下面是关于“Python统计多维数组的行数和列数实例”的完整攻略。 一、需求说明 在进行数据分析或者机器学习时,我们常常需要统计多维数组的行数和列数,以便对数据进行分析和处理。本文将以Python实现统计多维数组的行数和列数为例,为大家提供详细的攻略。 二、实现过程 1. 使用numpy库求解行数和列数 在Python中,可以使用numpy库中的shape方…

    python 2023年5月14日
    00
  • 解决Python复杂zip文件的解压问题

    下面是“解决Python复杂zip文件的解压问题”的完整攻略。 问题描述 在Python中使用zipfile模块解压较为简单的zip文件时,可以简单地使用如下代码: import zipfile zip_ref = zipfile.ZipFile(‘file.zip’, ‘r’) zip_ref.extractall(‘target_dir’) zip_re…

    python 2023年5月20日
    00
  • python实现将一个数组逆序输出的方法

    下面是标准的markdown格式文本,详细讲解“python实现将一个数组逆序输出的方法”的完整攻略: 简介 数组是一种非常常见的数据类型,它由相同类型的数据元素构成的有限序列。在Python中,我们可以通过列表(list)来表示数组。实现将一个数组逆序输出,可以通过该列表的reverse()方法,或使用切片语法实现。 reverse()方法 reverse…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部