`
文章列表
%%%------------------------------------------------------------------- %%% Module : astar_trace %%% Author : %%% Description : A星寻路算法 %%%------------------------------------------------------------------- -module(astar_trace). -export([generate_route/8,generate_route/7,generate_route/5]) ...
1bytes = 8bit  即 1字节=8位 32位机器,1字用32位表示,那么1字长=32/8=4字节 64位机器,1字用64位表示,那么1字长=64/8=8字节
1:gen_event:which_handlers(EventRef).   返回EventRef类型的event handlers   例如:   error_logger:add_report_handler(my_loger),   gen_event:which_handlers(error_loger)
触发异常 throw(Term) exit(Reason) erlang:error(Reason) 特列:exit(normal),进程调用它所跑出的异常不会被捕获,该进程正常终止 try...catch try unsafe_fun() catch ErrType:Reason -> do_something() end. try...of...catch try unsafe_fun() of O -> io:format("do nothing&quo ...
进程链接的工作:   A进程意外退出时,会产生一个退出信号。所有与A进程链接的进程(link)都会收到这个信号。在默认情况下,接收方会一并退出并将信号传播给与它链接的其他进程,直到所有直接或间接链接在一起的所有进程统统退出为止。   OPT实现容错实现途径之trap_exit   在gen_server启动时,init函数中:erlang:process_flag(trap_exit,true),设置捕获退出信号标志,这时,会改写退出信号默认的传播行为,该进程不再服从外来的退出信号,而是将其捕获。进程接收退出信号后,将它转换成格式为{'EXIT',Pid,Reason}的消息  
直接排序属于交换排序 基本思想: 1:选1个基准元素(通常是第一个元素或最后一个元素),将待排数列分成两部分,一部分比基准元素小,一部分比基准元素大 2:再对这两部分数列重复步骤1 时间复杂度: 最好情况:O(n*logn) 最坏情况,退化为冒泡排序 O(n*n) 稳定性:不稳定 python代码实现:quick_sort.py def swap(l, i, j): tmp = l[i] l[i] = l[j] l[j] = tmp def partition(l, low, high): pivo = l[low] ...
冒泡排序属于交换排序 基本思想:   在待排序数列中,自上而下对相邻的两个元素进行比较和调整,小的上冒,大的下沉 时间复杂度:   最好情况:正序有序,只需比较n次,O(n)   最坏情况:反序有序,需要比较(n-1)+(n-2)+...1次,故O(n*n) 稳定性:稳定 代码示例:bubble_sort.py def bubble_sort(l): length = len(l) for i in range(0, length): for j in range(0, length-i-1): if l[j] > ...
堆排序:heap sort属于选择排序 堆的定义:有n个元素的序列(k1,k2...kn)满足: 1:Ki =< K2i 且 Ki =< K2i+1 (小顶堆) 或 2:Ki >= K2i 且 Ki >= K2i+1 (大顶堆) i = (1,2,...n/2) 基本思想: 把要排序的n个数的序列组建成一个堆,将堆顶元素输出(这时,堆顶元素也即是根元素是最大或最小),然后对剩余的n-1个元素再次组建成堆,再次输出堆顶元素…… 直到只有两个结点的堆,对它们进行交换,得到一个n个结点有序数列 操作:需要解决两个问题: 1:怎么建成堆 2:输出堆顶元素后,怎么对 ...
选择排序 基本思想:   从待排数列中,选取一个最小(或最大)的数,和第1位置的数交换,再从余下待排序数列中,选取最小(或最大)的一个数,和第2个位置的数交换,直到第n-1(倒数第二个)个元素和第n(末尾)个元素比较 操作方法: 9 5 6 2 1 8 --------------------- 第一趟: 1 5 6 2 9 8 第二趟: 1 2 6 5 9 8 第三趟: 1 2 5 6 9 8 第四趟 1 2 5 6 9 8 第五趟 1 2 5 6 ...
  希尔排序属于插入排序的一种,也称为缩小增量排序 基本思想:   将待排序数列划分为几个数列,对这几个数列分别进行直接插入排序 具体操作:   选取增量d(小于数列长度n),将数列划分为n/d个数列,对划分的数列进行直接插入排序   再选取一个增量d1,d1<d,重复上述步骤   直到dn = 1结束 取d=5 23 52 12 63 8 17 28 72 36 41 ---------------------------------------------- 23 17 |________ ...
因为对算法这一项实在是弱爆了,对自己从零开始学习,慢慢记录过程,加油哦 再因为最近在学习python和lua,就分别用两种语言都实现了 快速插入排序 基本思想:(假设是:从小到大,升序) 每次选择一个元素K插入已排好序的L[1...i]部分,如果L[x]>K,则K插入到L[x]前面, 要对L[x]后面的元素进行后移 时间复杂度: 最好情况:正序有序(从小到大)只需比较n次,不需要移动,复杂度O(n) 最坏情况:逆序有序(从大到小),插入第2个元素需要考察前1个元素,插入第3个元素需要考察前2个元素...插入第n个元素需要考察前n-1个元素,等差数列求和得n^2/2, 所以,复杂度为O ...
一个字节(byte)=8位二进制数(bit):1(byte) = 8(bit) 1 ASCII码(American Standard Code for Information Interchange,美国标准信息交换代码),占用一个字节 2 unicode编码,ASCII码对于美国,欧洲这些国家字符够用,但是处理中文字符至少要2个字节,ASCII码明显不够用,所以中国定制了GB2312码,日本,韩国等都有各自的编码集,为了统一国际标准,unicode编码产生了,它占用2个字节 3 utf-8编码(可变长编码) 有些文档如果都是英文字符,用unicode编码太浪费空间,utf8可以把一个un ...
  可以通过一个元表修改一个值的行为,使其在面对一个非预定义操作时执行一个指定操作 元表:metatable 元方法:metemethod __add --加法 __mul --乘法 __sub --减法 __div --除法 __unm --相反数 __mod -- ...
第一类值:在lua中,函数与其它数据类型(数字,字符串)一样,可以存放在变量中,可以存放在table中,可以作为实参,还可以作为函数返回值 词法域:嵌套的函数可以访问他外部函数的变量 非局部变量: names = {"kate", "john"} grades = {kate = 6, john = 9} function sortbygrade(names,grades) table.sort(names,function(n1,n2) return grades[n1]>grades[n2] end ...

Lua学习(四)函数

    博客分类:
  • lua
函数的作用:   1、完成某项特定任务   2、计算并返回结果 语法: function func_name(args) statements end 1、多重返回值   A、若函数作为一条单独语句执行,无返回值   B、若函数作为表达式一部分,只保留函数第一个返回值   C、若函数作为表达式一部分并且在表达式最后一个位置,返回所有值 function t_none() end --->无返回值 function t_one() return "a" end --->返回一个值" ...
Global site tag (gtag.js) - Google Analytics