代码改变世界

随笔分类 -  基础算法

Python几个算法实现

2014-07-08 13:58 by Polarisary, 340 阅读, 收藏,
摘要: 1.平衡点问题:比如int[] numbers = {1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点;假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点要求:返回任何一个平衡点 1 def balance_poin... 阅读全文

Logistic回归

2013-09-15 20:45 by Polarisary, 447 阅读, 收藏,
摘要: 一.环境配置需要安装python的数据计算的库numpy和Matplotlib画出图形sudo apt-get install python-numpysudo apt-get install python-matplotlib为了方便还安装了ipythonsudo apt-get install ipython二.编辑test.py 1 from numpy import * 2 3 def loadDataSet(): 4 dataMat = []; labelMat = [] 5 fr = open('testSet.txt') 6 for line in fr... 阅读全文

归并排序的两种实现

2013-02-04 16:22 by Polarisary, 239 阅读, 收藏,
摘要: sort是正常的递归实现归并排序,sortWithFor是从单个元素到整个集合实现归并排序,两种思想殊途同归。 1 public static Comparable[] aux; 2 /** 3 * 自顶向下递归的归并排序 4 * @param a 集合 5 */ 6 public static void sort(Comparable[] a){ 7 aux = new Comparable[a.length]; 8 sort(a,0,a.length-1); 9 }10 public static... 阅读全文

选择排序和插入排序

2013-01-31 17:08 by Polarisary, 162 阅读, 收藏,
摘要: 1 /** 2 * 选择排序 3 * @param arr 待排数组 4 */ 5 public static void selectSort(int[] arr){ 6 int n = arr.length; 7 for(int i=0;i<n;i++){ 8 int min = i; 9 for(int j=i+1;j<n;j++){10 if(arr[j]<arr[min])11 min = j;1... 阅读全文

动态连通性问题

2013-01-30 18:08 by Polarisary, 574 阅读, 收藏,
摘要: 问题:构建一个N个数的整数列,判断两个数是否是连通的。通过记录父节点来构建树,从而最终形成一个森林。亮点:引入连通分量大小,连接两个分类时,将小的分类连到大的分量上,减小书的高度,这样使通过父节点找其根节点的复杂度降低,从而适用于大数据量的处理!思路:判断两个数字是否连通:通过数组id[]记录其父节点,根节点的父节点是其本上,若两个数字的根节点是同一个,就连通。否则,不连通。连通两个分量:将两个不连通的分量的根节点的其中一个的父指向另一个。为了使连接后的树的高度降低,需要将小树连到大树上。采用sz[]记录连通分量大小实现。连通后将大树根的分量置为两个分类之和。 1 public class W 阅读全文