/* ============================================================================= 相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义): 1.稳定排序和非稳定排序    简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就 说这种排序方法是稳定的.反之,就是非稳定的.  比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,a3,…
模块 注意事项: 所有的模块导入都应该尽量往上写 内置模块 扩展模块 自定义模块 模块不会重复被导入 : sys.moudles 从哪儿导入模块 : sys.path import import 模块名 模块名.变量名 和本文件中的变量名完全不冲突 import 模块名 as 重命名的模块名 : 提高代码的兼容性 import 模块1,模块2 from import from 模块名 import 变量名 直接使用 变量名 就可以完成操作 如果本文件中有相同的变量名会发生冲突 from 模块名…
一.字符串 单引号定义: str1 = 'hello' 双引号定义: str1 = "hello" 三引号定义:""" 人生苦短, 我用python! """ # 单引号和双引号没有区别,三引号用于定义多行字符串 1.由于字符串属于可迭代对象,所以我们可以对它仅行索引取值 name = "zhangsan" print(name[1]) 2. 切片 name = 'qwertyuiopasdfghjkl'…
这里给出了4种4种常用的单链表翻转的方法,分别是: 开辟辅助数组,新建表头反转,就地反转,递归反转 # -*- coding: utf-8 -*- ''' 链表逆序 ''' class ListNode: def __init__(self,x): self.val=x self.next=None ''' 第一种方法: 对于一个长度为n的单链表head,用一个大小为n的数组arr储存从单链表从头 到尾遍历的所有元素,在从arr尾到头读取元素简历一个新的单链表 时间消耗O(n),空间消耗O(n)…
1. 选择排序 -- -- def selectSort(l): for i in range(len(l)): j = i + 1 t_min = l[i] loc_min = i for j in range(j,len(l)): if l[j] < t_min: t_min = l[j] loc_min = j if loc_min != i: t = l[i] l[i] = t_min l[loc_min] = t 2. 冒泡排序 -- -- def bubbleSort(l): for…
一.冒泡排序 概念:为一个无序的列表排成有序的 实现过程描述:(升序) 1.比较相邻的元素,如果第一个比第二个大,就交换他们的位置 2.对每一对相邻元素重复1的工作,从开始第一队到最后一对,最后结束的时候最大的数会在后面 3.针对所有元素重复1,2的工作,除了最后一个数,因为最后的数最大,省略这个过程 4.持续每次对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较 复杂度: 时间复杂度为O(n^2) 代码实现: #给定一个列表 list = [11,54,3243,323,3,82,1…
1.字典 字典的创建: dict1=dict((('name','PIG'),)),其中第一层()代表里面的内容是dict函数的输入参数.第二层和第三层代表字典中的各元素,也就是key和value组合的列表,只不过这种列表不是一种线性列表list,而是hash列表.在dict()和list()的函数调用中,里面用list标识符[]或者() 元组tuple效果一样.也可以像int()一样,将其看成强转换. dict2={'name':'PIG'} 字典的修改: dict1={'name':'dog…
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目更少的k个特征取代,新特征是旧特征的线性组合,这些线性组合最大化样本方差,尽量使新的k个特征互不相关.关于PCA的更多介绍,请参考:https://en.wikipedia.org/wiki/Principal_component_analysis. PCA的主要算法如下: 组织数据形式,以便于模型…
问题:给出一个字符串,输出所有可能的排列. 全排列有多种算法,此处仅介绍常用的两种:字典序法和递归法. 1.字典序法: 如何计算字符串的下一个排列了?来考虑"926520"这个字符串,我们从后向前找第一双相邻的递增数字,"20"."52"都是非递增的,"26 "即满足要求,称前一个数字2为替换数,替换数的下标称为替换点,再从后面找一个比替换数大的最小数(这个数必然存在),0.2都不行,5可以,将5和2交换得到"956…
主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句话,通过PCA,我们将整个数据集(不带类别标签)映射到一个子空间中,在MDA中,我们致力于找到一个能够最好区分各类的最佳子集.粗略来讲,PCA是通过寻找方差最大的轴(在一类中,因为PCA把整个数据集当做一类),在MDA中,我们还需要最大化类间散布. 在通常的模式识别问题中,MDA往往在PCA后面.…