python部分排序算法(网友提供)

// 冒泡排序

def bubble(x,n):
    ‘‘‘This function orders the original items x

x is list,n is the length of x‘‘‘
    for i in range(n):
        for j in range(n-1):
            if x[j] >x[j+1]:
                t = x[j]
                x[j]= x[j+1]
                x[j+1] = t

// 插入排序
def insert(x,n):
     i = 1
     while i<n-1:
         key = x[i]
         j = i-1
         while j>=0 and key<x[j]:
             x[j+1]= x[j]
             j -= 1
         x[j+1] = key
         i += 1

// 选择排序
def select(x,n):
    for i in range(n-1):
        key = i
        for j in range(i+1,n):
            if x[j] < x[key]:
                 key = j
        if key!=i:
            t = x[i]
            x[i] = x[key]
            x[key] = t

// 快速排序
def partition(x,low,high):
    key = x[low]
    while low<high:
        while low<high and x[high]>=key:
            high -= 1
        if low < high:
            x[low]= x[high]
            low += 1
        while low <high and x[low]<=key:
            low += 1
        if low < high:
            x[high] = x[low]
            high -= 1
    x[low] = key
    return low
def quick(x,low,high):
    if low < high:
       p = partition(x,low,high)
       quick(x,low,p-1)
       quick(x,p+1,high)

时间: 2024-10-06 21:43:49

python部分排序算法(网友提供)的相关文章

Python实现排序算法之快速排序

Python实现排序算法:快速排序.冒泡排序.插入排序.选择排序.堆排序.归并排序和希尔排序 Python实现快速排序 原理 首先选取任意一个数据(通常选取数组的第一个数)作为关键数据,然后将所有比它小的放到它前面,所有比它大的放到它后面,这个过程称为一趟快速排序 快速排序原理图如下: 实现 #coding=utf-8 #python实现快速排序 def quick_sort(li,start,end): if start < end: flag = li[start] print(flag)

Python 实现排序算法

排序算法 下面算法均是使用Python实现: 插入排序 原理:循环一次就移动一次元素到数组中正确的位置,通常使用在长度较小的数组的情况以及作为其它复杂排序算法的一部分,比如mergesort或quicksort.时间复杂度为 O(n2) . # 1nd: 两两交换 def insertion_sort(arr): for i in range(1, len(arr)): j = i while j >= 0 and arr[j-1] > arr[j]: arr[j], arr[j-1] = a

python基本排序算法(一)

一.冒泡排序 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”. 冒泡排序算法的原理如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. #!/usr/bin/env

Python常见排序算法解析

概述 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序. 基础定义 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面. 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面. 时间复杂度:对排序数据的总的操作次数.

Python实现排序算法1

排序算法有很多种,下面列举几种:1.冒泡排序2.选择排序3.插入排序4.希尔排序5.快速排序6.归并排序1.冒泡排序 # -*- coding:utf-8 -*- def bubble_sort(alist): """冒泡排序""" for j in range(len(alist)-1): for i in range(0,len(alist)-1-j): if alist[i] > alist[i+1]: alist[i],alist[

python实现排序算法(一)——插入排序算法

1 ''' 2 插入排序算法 3 原始数据data 4 排序数据后数据SortedData,默认是从小打大排序 5 6 1.从data第一个元素开始,该元素赋值给SortedData[0],可以认为SortedData已经被排序 7 8 2.取出data的一个元素data[i], 9 (1)从左到右扫描SortedData, 10 如果data[i]小于SortedData的某个元素SD,那么将data[i]插入SD的位置,选取下一个元素 11 (1)如果data[i]大于SortedData最

python函数中文手册(网友提供)

内置函数 一, 文档说明 原始文档来自于python v2.7.2 中文译文和用法尚不完全,您可以自由修改和完善, 您可以在文档结尾鸣谢添上您的名字,我们将会感谢您做的 贡献! 二,函数列表 1,取绝对值 abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex 

python 基本排序算法

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/6/24 下午7:54 # @Author : lb # @File : test.py import numpy as np arr = np.random.randint(1000, size=1000) print type(arr) # 冒泡排序 def buble_sort(arr): return for i in xrange(len(arr)): for j

Python常用排序算法

#快排 1 def q_sort(l): 2 left = 0 3 right = len(l)-1 4 return q(l,left,right) 5 6 def quick_sort(l,left,right): 7 if left >= right: 8 return l 9 low = left 10 high = right 11 while right>left: 12 while right>left and l[right] >= l[left]: 13 righ