- 博客(14)
- 收藏
- 关注
原创 linux kernel data struct : 随机产生一副扑克牌
今天我们来看看,如何随机产生一副扑克牌。#include #include typedef enum { XIAO_GUI = 1, DA_GUI, RED_HEART = 3, FANG_PIAN, MEI_HUA, HEI_TAO}FLOWER_COLOR;typedef struct { FLOWE
2013-08-03 07:55:18
650
原创 linux kernel data struct: dijkstra算法
今天来看看这个算法,鸣谢一位同事给讲解这个算法,算法的思想大家可以去了解一下;算法主要思想:找出图中任意一点出发,找出到其他点的最短路径;实现上往往会有一个集合来存放已知点,每次加入一个点;加入的方法是:找出集合点的所有路径,筛选出离A点最近的点,加到集合中。这里简单的对其实现: #include #include #define N 5 //5个点 ty
2013-08-01 07:39:48
726
原创 objective-c : 使用FSM实现自动售水机模型
今天我们使用FSM(finite state machine有限状态机)来实现一个自动售水机;我们要实现的FSM,如下图: +-------------------------------------------------+-----+ |
2013-06-30 21:53:17
1159
原创 objective-c : 构造类、继承及实例
今天,我们来实现如下UML,并作为objective-c的第二个例子,介绍如何自己构造类,实现继承,并如何实例化,赋值等: +--------------------------+ | Phone | |--------------------------|
2013-06-20 07:26:51
602
原创 objective-c : windows下搭建环境并编译自己的第一个objective-c程序
objective-c 是C的一个改进语言,新添的一些面向对象的特性。今天我们来看看,如下在windows下搭建编写objective-c的环境,并编译第一个hello程序。如何在windows下搭建的方法很多,经过自己动手并确认的,大家可以参考:http://blog.csdn.net/waden/article/details/5765294当然,该文也给出了第一个程序,当然,作为第一
2013-06-19 23:01:55
573
原创 linux kernel data struct: binary search
今天我们来看看二分法,它建立在已经排序好的线性表基础上,我们假设线性表进行了升序的排列,将要查找的元素与线性表中间的元素进行比较,如果元素比中间的大,那么,再在后半部分进行同样方法的查找;以此。。。直到待查找的线性表只剩一个元素。这是一种比较高效的查找方法了,它的时间复杂度为O(logN) 底为2,N代表线性表长度,也就是说,如果线性表长为8,那么最多只需要3次比较(2的3次方为8),就
2013-06-14 08:07:35
614
原创 linux kernel data struct : 改进的冒泡排序法
传统的冒泡排序,时间复杂度会是O(n*n),以下的改进型冒泡排序,加入一个标志位,巧妙的利用上一次比较信息决定是否有必要进行下一次的排序;能将时间复杂度降到O(n*logn)。 #include void optim_bub(int a[], int num){ int i,j,temp; int changed; int count = 0;
2013-06-12 21:05:40
625
原创 linux kernel data struct: quick sort
快速排序采用分而治之的排序方式,在一次排序后,便将整个欲排序的数组以第一个元素为为界,分为小于和大于两边;这种方式能将时间复杂度降到O(n*logn)。以下为个人的C实现,在Dev-C上验证通过:关于这种排序的思路,网上都有介绍,其中有种,挖了填,拆东墙补西墙的解释挺通俗易懂的,大家可以自己去了解一下; #include #include void quick_sort
2013-06-11 14:28:24
714
原创 linux kernel data struct: KMP算法实现
KMP算法被三位外国人所发现,其实是利用“欲搜索”字符串内部的特征,避免两个字符串的回溯,从而把字符串模式匹配的时间复杂度从O(m*n)降低到O(m+n)。 这个算法的核心在于理解和计算next数组。具体实现如下: #include /**return where different.return 0 means equal.*/int is_2str_dif
2013-06-10 21:45:32
611
1
原创 linux kernel data struct : find longest sub string
今天我们来看看面试 C 中常见,而且比较刁钻的题目:找出两个字符串中的最大相同子串,如:str1: "mmmabckkk"str2: "oabclll"那么最大相同子串为:abc以下为我与同事讨论最后的思路及解法,希望对大家有所启发。基本思路为:短串中以最大的长度作为窗口,以后窗口依次减一; 遍历短串的窗口字符 遍历长串的
2013-05-11 14:23:50
539
原创 linux kernel X-tranx-Y : TTY to sdio
今天我们来看看linux kernel driver中的glue:sdio_uart.c。 顾名思义,这个文件把以TTY和sdio设备驱动贴合在一起,实现了TTY(一般为串口)到sdio设备的转换,也就是TTY over sdio。该文件实现的功能框图如下: +-------------------+---------------------+ |
2013-04-30 21:49:09
1317
原创 linux kernel data struct : circular buf
今天我们来看一下,linux kernel driver中经常使用的环形缓冲区以及对它的操作,参考文件:u_serial.c,如下图所示: buf_buf + |
2013-04-21 07:27:00
718
原创 linux kernel X-tranx-Y : TTY to gadget
今天我们来看看linux kernel driver中的glue:u_serial.c。 这个文件把以TTY和USB Gadget设备驱动贴合在一起,实现了TTY(一般为串口)到Gadget设备的转换。该文件实现的功能框图如下: +-----------------+---------------------+ |
2013-04-20 08:44:35
1218
原创 linux kernel X-tranx-Y : Ethernet-to-Gadget
今天我们来看看linux kernel driver中的glue:u_ether.c这个文件把以太网卡设备转换成了USB gadget设备,目的是实现TCP/IP Over USB。该文件实现的功能框图如下: +-------------+--------------------------+ | |
2013-04-20 07:15:55
1558
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人