摘要:
时间复杂度,平均O(nlogn),最坏O(n); 不稳定的算法 1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 (1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将... 阅读全文
摘要:
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。 时间复杂度O(n^2), 空间复杂度O(1) 稳定的排序算法 1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则... 阅读全文
摘要:
注:所讲述链表不带单独的头结点、 删除结点其实是一个很简单的问题,其关键在索要善删除的结点是第一个结点是,头结点位的解决。 若是头结点需要单独进行操作,其源码如下: 1: int del_node(linka** head, int elem) { 2: if(head ==NULL || *head ==NULL) 3: ... 阅读全文
摘要:
注明,本博客均假设链表没有单独的头结点。 网上博客:http://blog.csdn.net/niuer09/article/details/5961004 一种有有单独头结点的一种实现,带有头结点的实现起来要简单一些的。 单向链表的逆序或是反转是经常会遇到的一个面试题,也是一个非常基础的问题,我自己的面试中就已经遇到的两次。 比如一个链表是这样的: 1->2->3->4->5 通过反转后... 阅读全文
摘要:
首先分析http协议的报头数据 1: GET /index.html HTTP/1.1 2: Host: localhost:8000 3: User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 4: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 5: Accept-Language: en-us,en;q=0.5 6: Accept-Encodi... 阅读全文
摘要:
创建套接字函数socket: 1: #include <sys/socket.h> 2: int socket (int domain, int type ,int protocol); 3: // common invoke invoke: 4: int sockfd = socket(AF_INET, SOCK_STREAM,0);//AP_INET IPV4 协议 //S... 阅读全文