算法
group401
A chain is no stronger than its weakest link.
展开
-
1000: A+B Problem
import java.io.*; import java.util.*; public class Main { public static void main(String args[]) throws Exception { Scanner cin=new Scanner(System.in)原创 2016-05-01 14:11:25 · 316 阅读 · 0 评论 -
辗转相除
//求最大公约数和最小公倍数辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数最小公倍数等于两整数的乘积除最大公约数。 function gcd($n1, $n2){ if($n1 % $n2 == 0){ return $n2; } return gcd原创 2016-06-02 10:17:51 · 324 阅读 · 0 评论 -
二分查找
/*二分查找 是针对一个已经进行排序的数组进行查找*/ /* $arr 要查找的数组 $v 要查找的数 $start 要查找的开始位置 $end 要查找的结束位置 */ function binary_search($arr, $v, $start, $end){ if($st原创 2016-06-02 10:16:59 · 189 阅读 · 0 评论 -
快速排序
/*快速排序*/ function quickSort($arr){ $len = count($arr); if($len > 1){ $max = $arr[0]; $lArr = array(); $rArr = array(); for($i原创 2016-06-02 10:16:15 · 180 阅读 · 0 评论 -
冒泡排序
/*数组排序算法 逻辑描述,冒泡 对该数组第一个元素开始,从左到右,相邻的2个元素比较大小,如果左边的比较大,则交换顺序*/ $arr = array(1, 2, 5, 3); $len = count($arr); for($i = 0; $i for($j = 0; $j if($arr[$i] > $a原创 2016-06-02 10:15:44 · 203 阅读 · 0 评论 -
选择排序
/*选择排序 取得该数组中的最大值及其位置,然后该数组的最后一项交换 除该数值的最后一项继续比较*/ $arr = array(1, 2, 5, 3, 4, 6, 10); $len = count($arr); for($i = 0; $i //初始化最大值 $max = $arr[0];原创 2016-06-02 10:15:05 · 215 阅读 · 0 评论 -
二分查找
/*二分查找 是针对一个已经进行排序的数组进行查找*/ /* $arr 要查找的数组 $v 要查找的数 $start 要查找的开始位置 $end 要查找的结束位置 */ function binary_search($arr, $v, $start, $end){ if($st原创 2016-06-02 10:14:28 · 157 阅读 · 0 评论 -
约瑟夫环
#include int func(int n, int m) { if(n == 1) return 0; return (m + func(n-1, m)) % n; } int main() { int n, m =3; scanf("%d", &n); printf("%d", func(n, 3) + 1); return 0; }原创 2016-06-02 10:13:08 · 175 阅读 · 0 评论 -
分治法排序
#include #include #define N 4 #define MAX 10000 void merge(int *num, int p, int q, int r); void merge_sort(int *num, int p, int r); int main(void) { int num[100]; int i; printf("Please input转载 2016-04-20 20:31:51 · 223 阅读 · 0 评论 -
分治法求最大子数组
#include //1.假设最大子数组跨越中点,得到跨越中点的最大子数组。 int Find_Max_Crossing_SubArray(int A[], int low, int mid, int high) { int left_sum = -0xff; int sum = 0; //得到左边的最大子数组 for (int i = mid; i >= low; i转载 2016-04-20 20:20:12 · 367 阅读 · 0 评论 -
字符串压缩
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要转载 2016-05-02 22:09:20 · 216 阅读 · 0 评论 -
最小生成树 prim
#include "stdio.h" #include "stdlib.h" #define MAX 110 int a[MAX][MAX],p[MAX]; int main(void) { int i,j,k,n,t,min,sum,new_point,x,y,d;转载 2016-06-02 10:18:44 · 283 阅读 · 0 评论