摘要:
1 class Node(object): 2 def __init__(self,elem): 3 #elem指数据元素 4 self.elem = elem 5 #指向下一个节点的链接域 6 self.next = None 7 #构造单向链表类 8 class singleLinkList: 阅读全文
摘要:
1 from numpy import * 2 # 加载数据集 3 4 def loadDataSet(): 5 return [[1,3,4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] 6 7 # 创建集合 C1。即对 dataSet 进行去重,排序,放入 list 中, 阅读全文
摘要:
1 #列表保存学生信息,学生信息使用元组保存 2 stus = [('1001','张三',23,98), 3 ('1002','李四',23,99)] 4 #如果使用列表保存学生信息,必须遍历当前列表,拿学号进行判断,时间复杂度为o(n) 5 for stu in stus: 6 pass #获取 阅读全文
摘要:
timeit 模块可以用来测试一小段 Python 代码的执行速度。 1 class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>) Timer 是测量小段代码执行速度的类。其中 stmt 参数是要测试的代码语句(sta 阅读全文
摘要:
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后 阅读全文
摘要:
最基本的查找技术,过程:从表中的第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表示没有查到记录,查找不成功。 1 def sequence_search(a 阅读全文
摘要:
算法思想: 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 1 [ 阅读全文
摘要:
快速排序(英语:Quicksort),又称为交换排序,通过一趟排序将要排序的数据分割为独立的两部分。假设要排序的列表是 A[0]……A[N-1],首先任意选取一个数据(通常选用列表的第一个数)作为基准数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一趟快速排序。值得注 阅读全文
摘要:
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 1 def insert_sor 阅读全文
摘要:
1 def selection_sort(alist): 2 n = len(alist) 3 #需要进行n-1次选择操作 4 for i in range(n-1): 5 #剩余列表中最小值的索引 6 min_index = i 7 for j in range(i+1,n): 8 if alis 阅读全文