算法
Sharpen_ice
哥练的胸鸡
展开
-
排序(一) 辅助函数
排序算法测试的辅助函数:1.形成随机数组2.形成几近有序数组3.算法时间测试# SortTestHelper.pyimport randomimport timedef generateRandomArray(n,rangeL,rangeR): assert rangeL<=rangeR,\ "rangeR must be greater ...原创 2018-08-14 09:57:20 · 320 阅读 · 0 评论 -
排序(二) 基础排序
选择排序:在待排数据元素中选出最小元素,与序列首元素交换# selection_sort.pydef swap(a,b): return b,adef selectionSort(array,n): for i in range(n): minIndex = i for j in range(i+1,n): if...原创 2018-08-14 10:45:38 · 150 阅读 · 0 评论 -
排序(三) 归并排序
核心在于归并两个有序数组:开辟新的空间,三个指针,依次指向第一组数、第二组数、新的数组,比较两个待合并数组的当前元素,将小者放入新数组中。两种思想:自顶向下(递归)mergeSort;自底向上mergeSortBU# merge_sort.py# [l,r]def __merge(array,l,mid,r): aux = array.copy() i = l ...原创 2018-08-14 11:05:45 · 274 阅读 · 0 评论 -
排序(四) 快速排序
原始快速排序:选取最左边元素作为标准,将所有小于它的元素放在左边,大于它的元素放在右边# quick_sort.py# [l,r]def swap(a,b): return b,adef __partition(array,l,r): e = array[l] j = l for i in range(l+1,r+1): if(arr...原创 2018-08-14 14:14:17 · 214 阅读 · 0 评论 -
前序遍历中序遍历还原二叉树 求后序遍历
【输入】第一行为前序遍历,第二行为中序遍历。 二叉树中的结点名称以大写字母表示:A,B,C....最多26个结点。FDXEAGXDEFAG【输出】后序遍历的字符串。XEDGAF【图解】1.找到前序遍历字符串(pre)第一个F,对应到中序遍历字符串(in)相应位置2.通过in划分左右子树3.对应到pre4.递归#include...原创 2019-07-19 18:38:08 · 205 阅读 · 0 评论 -
大数加法(包括负数)
#include <iostream>using namespace std;int main(void){ string a,b; int aa[1002]={0}; int bb[1002]={0}; int sum[1002]; int len_a=0; int len_b=0; while(cin>>...原创 2019-07-24 22:12:31 · 469 阅读 · 0 评论