算法
文章平均质量分 76
丿笔迹
责任心、态度、自制力。
请认真对待每件事
展开
-
算法之排序——插入排序
插入排序的基本思想是,对数组元素a[l]~a[r],经过前i-l遍处理后,a[l],a[l+1],.....a[i-1]已排好序。下一轮处理就是要将a[i]插入到a[l],a[l+1],.......a[i-1]的合适位置,即插入到前面的有序数列中,使得a[l],a[l+1],........a[i]是排好序的序列。 要达到这个目的,可以用顺序比较的方法,首先比较a[i]和a[i-1];如果a[原创 2013-11-13 18:34:56 · 1024 阅读 · 0 评论 -
算法之二分搜索法
二分搜索算法是是运用分治策略的典型例子。 二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2]与x进行比较,如果x=a[n/2],则找到x,算法终止,如果x 如果x>a[n/2],则只要在数组a的右半部进行搜索x。 #include class example { public: int *a; example(int n); int binarySe原创 2013-11-06 23:13:20 · 801 阅读 · 0 评论 -
算法之排序——交换排序(选择排序,冒泡排序)
选择排序: 选择排序是交换排序的一种,从字面上理解就是交换元素以达到排序的目的。 选择排序算法的基本思想是对待排序的元素序列a[l]~a[r]进行r-l遍处理,第i遍处理是将第i小的元素放到第i个位置上,这样排序i次后前i小的元素都已经确定,下一次排序从第i+1个位置开始,对之后的元素与第i+1个元素进行比较,如果找到某元素比第i+1个位置上的元素还小,则交换。 C语言代码: //原创 2013-11-13 14:05:37 · 1901 阅读 · 0 评论 -
单源最短路径(Dijkstra算法)
基本算法: 将图G中所有的顶点V分成两个顶点集合Va和Vb,如果源点S到u的最短路径已经确定,则点u属于集合Va,否则属于集合Vb。最开始的时候Va只包含源点S,其余的点属于Vb, 算法结束时所有由源点可达的点属于Va,不可达的点仍属于Vb。可以在求出最短路径长的同时记录最短路径,方法是记录终点前的前一个点,这样倒着查回去就能确定整条最短路径。 具体步骤: (1)首先初始化,将源点S到图中原创 2013-12-04 15:08:25 · 1138 阅读 · 1 评论