摘要:
操作系统PV操作之——生产者消费者模型 "个人博客主页" 参考资料: "Java实现PV操作 | 生产者与消费者" "浙大公开课" 在操作系统的多进程、多线程操作中经常会有因为同步、互斥等等问题引发出的一系列问题,我们的前辈为了解决这些问题,发明出了“信号量(Semaphore)”这么一个令人称奇的 阅读全文
摘要:
回溯策略 欢迎大家访问我的个人搭建的博客 "Vfdxvffd's Blog" 回溯是五大常用算法策略之一,它的核心思想其实就是将解空间看作是一棵树的结构,从树根到其中一个叶子节点的路径就是一个可能的解,根据约束条件,即可得到满足要求的解。求解问题时,发现到某个节点而不满足求解的条件时,就“回溯”返回 阅读全文
摘要:
Dynamic Programming Dynamic Programming是五大常用算法策略之一,简称DP,译作中文是“动态规划”,可就是这个听起来高大上的翻译坑苦了无数人,因为看完这个算法你可能会觉得和动态规划根本没太大关系,它对“动态”和“规划”都没有太深的体现。 举个最简单的例子去先浅显的 阅读全文
摘要:
快速排序 官方说法:快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过 阅读全文
摘要:
递归与分治策略 递归与分治策略是五大常见算法策略之一,分治策略的思想就是 分而治之 ,即先将一个规模较大的大问题分解成若干个规模较小的小问题,再对这些小问题进行解决,得到的解,在将其组合起来得到最终的解。而分治与递归很多情况下都是一起结合使用的,能发挥出奇效(1+1 2),这篇文章我们将先从递归说起 阅读全文
摘要:
排序算法小汇总 1、交换排序类 1.1、冒泡排序 1.2、快速排序 2、选择排序类 2.1、简单选择排序 2.2、堆排序 3、插入排序类 3.1、直接插入排序 3.2、希尔排序 4、归并排序 5、基数排序 交换排序类 冒泡排序(优化) 冒泡排序一般将前面作为有序区(初始无元素),后面作为无序区(初始 阅读全文
摘要:
TCP上传图片 继续做一个TCP的相关案例,在客户端上传一张图片到服务端,服务端收到图片后,给客户端回馈上传成功信息。 实现细节: 对于一些文件的读取,若文件偏大,可以始用缓冲区去读取和写入,可以提高效率 服务端面向的是很多用户,所以必须要开线程来接收 如果同一个用户上传多张 阅读全文
摘要:
UDP聊天案例 做一个网络编程相关的案例,想着用利用UDP的快速且不用连接的优点做一个聊天室,我们一个聊天程序需要可以接收消息,也要可以发送消息,所以我们的DatagramSocket对象不但需要调用send函数,还需要调用recieve函数。 而且由 阅读全文
摘要:
TCP 客户端 先创建socket对象建立tcp客户端,明确服务端的地址和端口,必须与服务端对应,要不然对方收不到消息,就像快递填错了送货地址。 ~~~java Socket s = new Socket("127.255.255.25", 10003); ~~~ 然后建立起连接通道后就会出现soc 阅读全文
摘要:
UDP 我的另一篇文章 "TCP方式的传输" 部分内容需要查文档学习,我们需要了解下面的两个类:java.net.DatagramSocket和java.net.DatagramPacket java.net.DatagramSocket: 此类表示用来发送和接收数据报包的套接字。它就像数据传输过程 阅读全文