python实现简单算法
#选择n^2def selectSort(li): for i in range(len(li)-1): minLoc = i for j in range(i+1,len(li)): if li[j] < li[minLoc]: li[minLoc],li[j] = li[j],li[minLoc] # li = [2,1,6,8,3,9,424,243,351,51]# selectSort(li)# print(li) #冒泡n^2 def bubbleSort(li): for i in range(len(li)-1): flag = False for j in range(len(li)-i-1): if li[j+1] < li[j]: li[j+1],li[j] = li[j],li[j+1] flag = True if not flag: return #插入n^2def insertSort(li): for i in range(1,len(li)): tmp = li[i] j = i-1 while j>=0 and li[j] >tmp: li[j+1] = li[j] j = j-1 li[j+1] = tmp # insertSort(li)# print(li) #冒泡是把最大的放到最后面,选择是把最小的放前面,插入 #快速排序,nlogn def partition(li,left,right): tmp = li[left] while left < right: while left < right and tmp <= li[right]: right = right - 1 li[left] = li[right] while left < right and tmp >= li[left]: left = left + 1 li[right] = li[left] li[left] = tmp return left def quickSort(li,left,right): if left <right: mid = partition(li,left,right) quickSort(li,left,mid-1) quickSort(li,mid+1,right) #归并排序nlogn def merge(li,low,mid,high): i = low j = mid + 1 ltmp = [] while i <= mid and j<=high: if li[i] >= li[j]: ltmp.append(li[j]) j = j+1 else: ltmp.append(li[i]) i = i+1 while i<= mid: ltmp.append(li[i]) i = i+1 while j<=high: ltmp.append(li[j]) j = j+1 li[low:high+1] = ltmp def mergeSort(li,low,high): if low < high: mid = (low + high) //2 mergeSort(li,low,high) mergeSort(li,mid+1,high) merge(li,low,mid,high) print(li[low:high+1]) li = [10,4,6,3,8,2,5,7]# mergeSort(li,0,len(li)-1) #计数排序O(n)def countSort(li): count = [0 for i in range(11)] for x in li: count[x] +=1 li.clear() for index,val in enumerate(count): for i in range(val): li.append(index) # countSort(li)# print(li) #二分法def BinarySearch(n,l): print(l) if len(l) == 0: print('not exists') return mid_index = len(l) // 2 if n > l[mid_index]: l = l[mid_index+1:] BinarySearch(n,l) elif n < l[mid_index]: l = l[:mid_index] BinarySearch(n,l) else: print(f'find it,index is l[{l.index(n)}]') # BinarySearch(6,li)
转载于:https://www.cnblogs.com/beiji/p/10059043.html
python实现简单算法相关推荐
- 小白学数据:教你用Python实现简单监督学习算法
转载自 小白学数据:教你用Python实现简单监督学习算法 今天,文摘菌想谈谈监督学习. 监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段.即便是在无监督学习兴起的近日,监督 ...
- 【python】利用python实现简单粒子群优化算法实例
前言 最近在准备复(bai)习(lan)智能信息处理ing--想着通过复现一些PPT上简单算法例子的方式加深自己对算法的理解,也作为大家使用粒子群这一算法的思路与代码参考hhh 算法简述 粒子群算法( ...
- 很多都是python很简单吗,但是要如何才能入门python并精通呢?
1,python怎么学 一般来说,Python几个月应该是可以入门了.如果你几个月还没有入门,一定是方法不对,要么就是偷懒了.我在公众号里面有一篇文章详细写过 '初学者上来不要学爬虫',爬虫虽然非常有 ...
- 用Python实现简单的人脸识别,10分钟(附源码)
前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确 ...
- em算法python代码_EM 算法求解高斯混合模型python实现
注:本文是对<统计学习方法>EM算法的一个简单总结. 1. 什么是EM算法? 引用书上的话: 概率模型有时既含有观测变量,又含有隐变量或者潜在变量.如果概率模型的变量都是观测变量,可以直接 ...
- Python:SMOTE算法——样本不均衡时候生成新样本的算法
Python:SMOTE算法 直接用python的库, imbalanced-learn imbalanced-learn is a python package offering a number ...
- python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...
原标题:推荐 :手把手教你用Python创建简单的神经网络(附代码) 作者:Michael J.Garbade:翻译:陈之炎:校对:丁楠雅 本文共2000字,9分钟. 本文将为你演示如何创建一个神经网 ...
- python算法书籍-有哪些用 Python 语言讲算法和数据结构的书?
1.Python数据结构篇 数据结构篇主要是阅读[Problem Solving with Python](Welcome to Problem Solving with Algorithms and ...
- python编写程序-30分钟学会用Python编写简单程序
参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方式修改它们. 了解构成有效Python标识符和表 ...
最新文章
- const和static readonly 区别
- 在iOS中使用tableView
- Spring3 表达式语言(SpEL)介绍
- c++字符前面的L和_T
- 修改默认runlevel
- 【转】C++ vector的reserve和resize详解
- python 获取内存使用率_Python获取CPU使用率、内存使用率、网络使用状态 | 学步园...
- 手机网页里的模态对话框
- (转)递归转非递归的思路和例子
- python 无法引入同级目录的方法_再见 virtualenv!K神教你轻松管理多个Python环境...
- java 怎么链接ndk的库_使用ndk-build链接现有的静态库
- 第3讲 zend原理剖析
- Java 常用修饰符总结
- UIButton颜色渐变 titleLabel字体不显示
- 隋朝之前,扬州指的是现在的南京
- 2021-08-3116. 最接近的三数之和 排序+双指针
- 关系运算符和逻辑运算符
- 电脑麦克风,详细教你电脑麦克风没声音怎么设置
- 基于传统方法的单目深度估计
- ExecuteNonQuery()的用法