php实现简单算法3
php实现简单算法3
这篇文章主要介绍了PHP经典算法集锦,整理了各种常见的算法,包括排序、查找、遍历、运算等各种常见算法原理与实现技巧,需要的朋友可以参考下
1、首先来画个菱形玩玩,很多人学C时在书上都画过,咱们用PHP画下,画了一半。
思路:多少行for一次,然后在里面空格和星号for一次。
1
2
3
4
5
6
|
<?php for ( $i =0; $i <=3; $i ++){ echo str_repeat ( " " ,3- $i ); echo str_repeat ( "*" , $i *2+1); echo '<br/>' ; } |
2、冒泡排序,C里基础算法,从小到大对一组数排序。
思路:这题从小到大,第一轮排最小,第二轮排第二小,第三轮排第三小,依次类推……
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php $arr = array (1,3,5,32,756,2,6); $len = count ( $arr ); for ( $i =0; $i < $len -1; $i ++){ for ( $j = $i +1; $j < $len ; $j ++){ if ( $arr [ $i ]> $arr [ $j ]){ //从小到大 $p = $arr [ $i ]; $arr [ $i ] = $arr [ $j ]; $arr [ $j ]= $p ; } } } var_dump( $arr ); |
3、杨辉三角,用PHP写。
思路:每一行的第一位和最后一位是1,没有变化,中间是前排一位与左边一排的和,这种算法是用一个二维数组保存,另外有种算法用一维数组也可以实现,一行 一行的输出,有兴趣去写着玩下。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php //每行的第一个和最后一个都为1,写了6行 for ( $i =0; $i <6; $i ++) { $a [ $i ][0]=1; $a [ $i ][ $i ]=1; } //出除了第一位和最后一位的值,保存在数组中 for ( $i =2; $i <6; $i ++) { for ( $j =1; $j < $i ; $j ++) { $a [ $i ][ $j ] = $a [ $i -1][ $j -1]+ $a [ $i -1][ $j ]; } } //打印 for ( $i =0; $i <6; $i ++){ for ( $j =0; $j <= $i ; $j ++) { echo $a [ $i ][ $j ]. ' ' ; } echo '<br/>' ; } |
4、在一组数中,要求插入一个数,按其原来顺序插入,维护原来排序方式。
思路:找到比要插入数大的那个位置,替换,然后把后面的数后移一位。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php $in = 2; $arr = array (1,1,1,3,5,7); $n = count ( $arr ); //如果要插入的数已经最大,直接打印 if ( $arr [ $n -1] < $in ) { $arr [ $n +1] = $in ; print_r( $arr ); } for ( $i =0; $i < $n ; $i ++) { //找出要插入的位置 if ( $arr [ $i ] >= $in ){ $t1 = $arr [ $i ]; $arr [ $i ] = $in ; //把后面的数据后移一位 for ( $j = $i +1; $j < $n +1; $j ++) { $t2 = $arr [ $j ]; $arr [ $j ] = $t1 ; $t1 = $t2 ; } //打印 print_r( $arr ); die ; } } |
5、对一组数进行排序(快速排序算法)。
思路:通过一趟排序分成两部分,然后递归对这两部分排序,最后合并。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php function q( $array ) { if ( count ( $array ) <= 1) { return $array ;} //以$key为界,分成两个子数组 $key = $array [0]; $l = array (); $r = array (); //分别进行递归排序,然后合成一个数组 for ( $i =1; $i < count ( $array ); $i ++) { if ( $array [ $i ] <= $key ) { $l [] = $array [ $i ]; } else { $r [] = $array [ $i ]; } } $l = q( $l ); $r = q( $r ); return array_merge ( $l , array ( $key ), $r ); } $arr = array (1,2,44,3,4,33); print_r( q( $arr ) ); |
6、在一个数组查找你所需元素(二分查找算法)。
思路:以数组中某个值为界,再递归进行查找,直到结束。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php function find( $array , $low , $high , $k ){ if ( $low <= $high ){ $mid = intval (( $low + $high )/2); if ( $array [ $mid ] == $k ){ return $mid ; } elseif ( $k < $array [ $mid ]){ return find( $array , $low , $mid -1, $k ); } else { return find( $array , $mid +1, $high , $k ); } } die ( 'Not have...' ); } //test $array = array (2,4,3,5); $n = count ( $array ); $r = find( $array ,0, $n ,5) |
7、合并多个数组,不用array_merge(),题目来于论坛。
思路:遍历每个数组,重新组成一个新数组。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php function t(){ $c = func_num_args()-1; $a = func_get_args(); //print_r($a); for ( $i =0; $i <= $c ; $i ++){ if ( is_array ( $a [ $i ])){ for ( $j =0; $j < count ( $a [ $i ]); $j ++){ $r [] = $a [ $i ][ $j ]; } } else { die ( 'Not a array!' ); } } return $r ; } //test print_r(t(range(1,4),range(1,4),range(1,4))); echo '<br/>' ; $a = array_merge (range(1,4),range(1,4),range(1,4)); print_r( $a ); |
8、牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛。(来自论坛)
1
2
3
4
5
6
7
8
9
10
11
|
<?php function t( $n ) { static $num = 1 for ( $j =1; $j <= $n ; $j ++){ if ( $j >=4 && $j <15) { $num ++;t( $n - $j );} if ( $j ==20){ $num --;} } return $num ; } //test echo t(8); |
====================其他算法=========================
冒泡排序 (bubble sort) — O(n2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
$data = array (3,5,9,32,2,1,2,1,8,5); dump( $data ); BubbleSort( $data ); dump( $data ); function BubbleSort(& $arr ) { $limit = count ( $arr ); for ( $i =1; $i < $limit ; $i ++) { for ( $p = $limit -1; $p >= $i ; $p --) { if ( $arr [ $p -1] > $arr [ $p ]) { $temp = $arr [ $p -1]; $arr [ $p -1] = $arr [ $p ]; $arr [ $p ] = $temp ; } } } } function dump( $d ) { echo '<pre>' ; print_r( $d ); echo '</pre>' ; } |
插入排序 (insertion sort)— O(n2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
$data = array (6,13,21,99,18,2,25,33,19,84); $nums = count ( $data )-1; dump( $data ); InsertionSort( $data , $nums ); dump( $data ); function InsertionSort(& $arr , $n ) { for ( $i =1; $i <= $n ; $i ++ ) { $tmp = $arr [ $i ]; for ( $j = $i ; $j >0 && $arr [ $j -1]> $tmp ; $j -- ) { $arr [ $j ] = $arr [ $j -1]; } $arr [ $j ] = $tmp ; } } function dump( $d ) { echo '<pre>' ;print_r( $d ); echo '</pre>' ; } |
希 尔排序 (shell sort)— O(n log n)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
$data = array (6,13,21,99,18,2,25,33,19,84); $nums = count ( $data ); dump( $data ); ShellSort( $data , $nums ); dump( $data ); function ShellSort(& $arr , $n ) { for ( $increment = intval ( $n /2); $increment > 0; $increment = intval ( $increment /2) ) { for ( $i = $increment ; $i < $n ; $i ++ ) { $tmp = $arr [ $i ]; for ( $j = $i ; $j >= $increment ; $j -= $increment ) if ( $tmp < $arr [ $j - $increment ] ) $arr [ $j ] = $arr [ $j - $increment ]; else break ; $arr [ $j ] = $tmp ; } } } function dump( $d ) { echo '<pre>' ;print_r( $d ); echo '</pre>' ; } |
快 速排序 (quicksort)— O(n log n)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
$data = array (6,13,21,99,18,2,25,33,19,84); dump( $data ); quicks( $data ,0, count ( $data )-1); dump( $data ); function dump( $data ){ echo '<pre>' ;print_r( $data ); echo '</pre>' ; } function QuickSort(& $arr , $left , $right ) { $l = $left ; $r = $right ; $pivot = intval (( $r + $l )/2); $p = $arr [ $pivot ]; do { while (( $arr [ $l ] < $p ) && ( $l < $right )) $l ++; while (( $arr [ $r ] > $p ) && ( $r > $left )) $r --; if ( $l <= $r ) { $temp = $arr [ $l ]; $arr [ $l ] = $arr [ $r ]; $arr [ $r ] = $temp ; $l ++; $r --; } } while ( $l <= $r ); if ( $left < $r ) QuickSort(& $arr , $left , $r ); if ( $l < $right ) QuickSort(& $arr , $l , $right ); } |
=================================================
冒泡排序:两两交换数值,最小的值在最左边,就如最轻的气泡在最上边。对整列数两两交换一次,最小的数在最左边,每次都能得一个在剩下的数中的最小 的数,“冒”出来的数组成一个有序区间,剩下的值组成一无序区间,且有序区间中每一元素值都比无序区间的小。
快速排序:基准数,左右二个数组,递归调用,合并。
插入排序:排序区间分成二部分,左边有序,右边无序,从右区间取 第一个元素插入左区间,若此元素比左边区间最右边的元素大,留在原处,若此元素比左 边区间最右边的元素小,则插在最右边元素的原位置,同时最右边元素右移一位,计算器减一,重新和前面的元素比较,直到前面的元素比要插入元素小为止,重复 上述步骤。
注意区间端点值的处理,及数组的第一个元素下标为0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<?php //PHP常用排序算法 function bubblesort ( $array ) { $n = count ( $array ); for ( $i = 0; $i < $n ; $i ++) { for ( $j = $n - 2; $j >= $i ; $j --) //[0,i-1] [i,n-1] { if ( $array [ $j ] > $array [ $j + 1]) { $temp = $array [ $j ]; $array [ $j ] = $array [ $j + 1]; $array [ $j + 1] = $temp ; } } } return $array ; } $array = array (3,6,1,5,9,0,4,6,11); print_r (bubblesort ( $array )); echo '<hr>' ; function quicksort ( $array ) { $n = count ( $array ); if ( $n <= 1) { return $array ; } $key = $array [ '0' ]; $array_r = array (); $array_l = array (); for ( $i = 1; $i < $n ; $i ++) { if ( $array [ $i ] > $key ) { $array_r [] = $array [ $i ]; } else { $array_l [] = $array [ $i ]; } } $array_r = quicksort ( $array_r ); $array_l = quicksort ( $array_l ); $array = array_merge ( $array_l , array ( $key ), $array_r ); return $array ; } print_r (quicksort ( $array )); echo '<hr>' ; function insertsort ( $array ) { $n = count ( $array ); for ( $i = 1; $i < $n ; $i ++) //[0,i-1] [i,n] { $j = $i - 1; $temp = $array [ $i ]; while ( $array [ $j ] > $temp ) { $array [ $j + 1] = $array [ $j ]; $array [ $j ] = $temp ; $j --; } } return $array ; } print_r (insertsort ( $array )); ?> |
=======================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
<?php /* 【插 入排序(一维数组)】 【基本思想】:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素 全部插入完为止。 【示例】: [初始关键字] [49] 38 65 97 76 13 27 49 J=2(38) [38 49] 65 97 76 13 27 49 J=3(65) [38 49 65] 97 76 13 27 49 J=4(97) [38 49 65 97] 76 13 27 49 J=5(76) [38 49 65 76 97] 13 27 49 J=6(13) [13 38 49 65 76 97] 27 49 J=7(27) [13 27 38 49 65 76 97] 49 J=8(49) [13 27 38 49 49 65 76 97] */ function insert_sort( $arr ){ $count = count ( $arr ); for ( $i =1; $i < $count ; $i ++){ $tmp = $arr [ $i ]; $j = $i - 1; while ( $arr [ $j ] > $tmp ){ $arr [ $j +1] = $arr [ $j ]; $arr [ $j ] = $tmp ; $j --; } } return $arr ; } /* 【选择排序(一维数组)】 【基 本思想】:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 【示例】: [初 始关键字] [49 38 65 97 76 13 27 49] 第一趟排序后 13 [38 65 97 76 49 27 49] 第 二趟排序后 13 27 [65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 49 65 49] 第 四趟排序后 13 27 38 49 [49 97 65 76] 第五趟排序后 13 27 38 49 49 [97 97 76] 第 六趟排序后 13 27 38 49 49 76 [76 97] 第七趟排序后 13 27 38 49 49 76 76 [ 97] 最 后排序结果 13 27 38 49 49 76 76 97 */ function select_sort( $arr ){ $count = count ( $arr ); for ( $i =0; $i < $count ; $i ++){ $k = $i ; for ( $j = $i +1; $j < $count ; $j ++){ if ( $arr [ $k ] > $arr [ $j ]) $k = $j ; } if ( $k != $i ){ $tmp = $arr [ $i ]; $arr [ $i ] = $arr [ $k ]; $arr [ $k ] = $tmp ; } } return $arr ; } /* 【冒泡排序(一维数组) 】 【基本思想】:两两比较待排序数据元素的大小,发现两个数据元素的次序 相反时即进行交换,直到没有反序的数据元素为止。 【排序过程】:设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据 轻气泡不能在重气泡之下的原则, 从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮",如此反复进行,直至最后任何两个气泡都是 轻者在上,重者在下为止。 【示例】: 49 13 13 13 13 13 13 13 38 49 27 27 27 27 27 27 65 38 49 38 38 38 38 38 97 65 38 49 49 49 49 49 76 97 65 49 49 49 49 49 13 76 97 65 65 65 65 65 27 27 76 97 76 76 76 76 49 49 49 76 97 97 97 97 */ function bubble_sort( $array ){ $count = count ( $array ); if ( $count <= 0) return false; for ( $i =0; $i < $count ; $i ++){ for ( $j = $count -1; $j > $i ; $j --){ if ( $array [ $j ] < $array [ $j -1]){ $tmp = $array [ $j ]; $array [ $j ] = $array [ $j -1]; $array [ $j -1] = $tmp ; } } } return $array ; } /* 【快速排序(一 维数组)】 【基本思想】:在当前无序区R[1..H]中任取一个数据元素作为比较的"基准"(不妨记为X), 用此基准将当前无序区划分为 左右两个较小的无序区:R[1..I-1]和R[I 1..H],且左边的无序子区中数据元素均小于等于基准元素, 右边的无序子区中数据元素均大 于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I 1..H](1≤I≤H), 当R[1..I-1] 和R[I 1..H]均非空时,分别对它们进行上述的划分过程,直至所有无序子区中的数据元素均已排序为止。 【示例】: 初始关键字 [49 38 65 97 76 13 27 49] 第一次交换后 [27 38 65 97 76 13 49 49] 第二次交换后 [27 38 49 97 76 13 65 49] J向左扫描,位置不变,第三次交换后 [27 38 13 97 76 49 65 49] I向右扫描,位置不变,第四次交换后 [27 38 13 49 76 97 65 49] J向左扫描 [27 38 13 49 76 97 65 49] (一次划分过程) 初始关键字 [49 38 65 97 76 13 27 49] 一趟排序之后 [27 38 13] 49 [76 97 65 49] 二趟排序之后 [13] 27 [38] 49 [49 65]76 [97] 三趟排序之后 13 27 38 49 49 [65]76 97 最后的排序结果 13 27 38 49 49 65 76 97 各趟排序之后的状态 */ function quick_sort( $array ){ if ( count ( $array ) <= 1) return $array ; $key = $array [0]; $left_arr = array (); $right_arr = array (); for ( $i =1; $i < count ( $array ); $i ++){ if ( $array [ $i ] <= $key ) $left_arr [] = $array [ $i ]; else $right_arr [] = $array [ $i ]; } $left_arr = quick_sort( $left_arr ); $right_arr = quick_sort( $right_arr ); return array_merge ( $left_arr , array ( $key ), $right_arr ); } /*打印数组全部内容*/ function display_arr( $array ){ $len = count ( $array ); for ( $i = 0; $i < $len ; $i ++){ echo $array [ $i ]. ' ' ; } echo '<br />' ; } /* 几种排序算法的比较和选择 1. 选取排序方法需要考虑的因素: (1) 待排序的元素数目n; (2) 元素本身信息量的大小; (3) 关键字的结构及其分布情况; (4) 语言工具的条件,辅助空间的大小等。 2. 小结: (1) 若n较小(n <= 50),则可以采用直接插入排序或直接选择排序。由于直接插入排序所需的记录移动操作较直接选择排序多,因而当记录本身信息量较大时,用直接选择排序较 好。 (2) 若文件的初始状态已按关键字基本有序,则选用直接插入或冒泡排序为宜。 (3) 若n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序。 快速排序是目前基于比较的内部排序法中被认为是最好的方法。 (4) 在基于比较排序方法中,每次比较两个关键字的大小之后,仅仅出现两种可能的转移,因此可以用一棵二叉树来描述比较判定过程,由此可以证明:当文件的n个关 键字随机分布时,任何借助于"比较"的排序算法,至少需要O(nlog2n)的时间。 (5) 当记录本身信息量较大时,为避免耗费大量时间移动记录,可以用链表作为存储结构。 */ /*排序测试*/ $a = array ( '12' , '4' , '16' , '8' , '13' , '20' , '5' , '32' ); echo 'The result of insert sort:' ; $insert_a = insert_sort( $a ); display_arr( $insert_a ); echo 'The result of select sort:' ; $select_a = select_sort( $a ); display_arr( $select_a ); echo 'The result of bubble sort:' ; $bubble_a = bubble_sort( $a ); display_arr( $bubble_a ); echo 'The result of bubble sort:' ; $quick_a = quick_sort( $a ); display_arr( $quick_a ); ?> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/** * 排列组合 * 采用二进制方法进行组合的选择,如表示5选3时,只需有3位为1就可以了,所以可得到的组合是 01101 11100 00111 10011 01110等10种组合 * * @param 需要排列的数组 $arr * @param 最小个数 $min_size * @return 满足条件的新数组组合 */ function pl( $arr , $size =5) { $len = count ( $arr ); $max = pow(2, $len ); $min = pow(2, $size )-1; $r_arr = array (); for ( $i = $min ; $i < $max ; $i ++){ $count = 0; $t_arr = array (); for ( $j =0; $j < $len ; $j ++){ $a = pow(2, $j ); $t = $i & $a ; if ( $t == $a ){ $t_arr [] = $arr [ $j ]; $count ++; } } if ( $count == $size ){ $r_arr [] = $t_arr ; } } return $r_arr ; } $pl = pl( array (1,2,3,4,5,6,7),5); var_dump( $pl ); //递归算法 //阶乘 function f( $n ){ if ( $n == 1 || $n == 0){ return 1; } else { return $n *f( $n -1); } } echo f(5); //遍历目录 function iteral( $path ){ $filearr = array (); foreach ( glob ( $path . '\*' ) as $file ){ if ( is_dir ( $file )){ $filearr = array_merge ( $filearr ,iteral( $file )); } else { $filearr [] = $file ; } } return $filearr ; } var_dump(iteral( 'd:\www\test' )); |
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》
下面这些链接点下去是能够点到51jb里面的php算法网站页面的,非常非常非常 有用
php实现简单算法3的更多相关文章
- CPD轮播广告库的简单算法
在广告的领域中,有一种广告形式,采用的是CPD的售卖模式,为了对流量进行拆分,媒体方会对广告位进行轮播拆分.比如一个广告位,被拆成了10轮播,那么在广告主来预订广告位的时候,这个时候就可以告诉广告主, ...
- php实现简单算法2
php实现简单算法2 去弄php手册,里面有数据结构,有数据结构就好办了,我的算法基础那么好. 而且的话有数据结构的话再配合我脑中的那些算法了,我就都ok啦. 在手册里面搜索php数据结构就好 路径如 ...
- php实现简单算法1
php实现简单算法1 <? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) functio ...
- php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行)
php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行) 一.总结 1.多复制上面写的代码,有利于检查错误 2.一层循环就解决了,前后两个指针,和大了 ...
- 【线性表基础】基于线性表的简单算法【Java版】
本文描述了基于线性表的简单算法及其代码[Java实现] 1-1 删除单链表中所有重复元素 // Example 1-1 删除单链表中所有重复元素 private static void removeR ...
- 一个简单算法题引发的思考<DNA sorting>(about cin/template/new etc)
首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自 ...
- EmguCV学习——简单算法 差分与高斯
公司项目需要检测运动物体,我对opencv也没啥研究,google了好久看了好多方法,最简单的就是差分与高斯背景建模了. 旁边搞c++的同事正在搞更nb的算法,等出来了 我再转成C#版的分享. 先看差 ...
- 设计简单算法体验Vivado HLS的使用
前言 本文主要讲解了使用Vivado HLS设计简单C语言的二选一选择器算法的硬件HLS开发的全流程,包括工程创建-算法验证和仿真-算法综合-RTL仿真-IP封装等步骤. 参考网站: http://b ...
- 几个用Python实现的简单算法
一.算法题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源 ...
随机推荐
- XRDP与VNC的关系(转载)
XRDP与VNC的关系 如果仅仅安装XRDP协议.是不能在windows上使用远程桌面连接到Ubuntu. 还须要安装VNCServer才行. 所以,XRDP启动之后.系统会自己主动启动一个VNC会话 ...
- 在ubuntu上编译rasbian kernel(for raspberry pi 1)
raspberry pi官网的编译手册写的简洁有力,照着操作即可 https://www.raspberrypi.org/documentation/linux/kernel/building.md ...
- Unity 给FindGameObjectsWithTag排序
GameObject[] patrol = GameObject.FindGameObjectsWithTag ("Player").OrderBy (g => g.tran ...
- COGS——T1310. [HAOI2006]聪明的猴子
http://cogs.pro/cogs/problem/problem.php?pid=1310 ★ 输入文件:monkey.in 输出文件:monkey.out 简单对比时间限制:1 ...
- ZooKeeper 配置注意事项 zoo.cfg
一 平台 二 软件环境 1) JDK 1.6 以上 (最好1.7 Hadoop 某一项安装时候需要 1.7) 2) 至少 3 个节点 (2m +1 ...
- ArcGIS api for javascript——查询,然后单击显示信息窗口
描述 本例展示如何配置查询任务为示例的工作流程: 1.用户单击一个要素来加亮显示. 2.用户再一次单击要素来查看属性信息的 InfoWindow. 本例查询USA州,因此ESRI_StateCityH ...
- HDU2452 Navy maneuvers 记忆化搜索
这题目意思能忍?读了半年,乱七八糟的 记忆化搜索 拖拖的,dp[i][0]代表以获得最小值为目标的船以i为起点.dp[i][1]代表以获得最大值为目标的船以i为起点.接下来暴力枚举入度为0的点为起点, ...
- vijos - P1176奇怪的数列 (递归 + 找规律)
P1176奇怪的数列 Accepted 标签:[显示标签] 背景 一天.学军数学小组的成员遇到了一个奇怪的数列,正巧信息小组的你碰到了他们. 于是他们把这个数列展示给你-- 描写叙述 这个数列是这种: ...
- 推荐putty远程工具背景效果
设置高亮显示及其行号 syntax on set number 然后设置putty显示背景 如图 感觉这种效果比较舒适 推荐推荐
- IntelliJ IDEA springmvc demo
construction pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...