
笔记
算法设计笔记
day-dreamer_
人生海海
展开
-
Socket实现对TCP与UDP服务的调用
什么是Socket?Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。什么是TCP?TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。什么是UDP?UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。TCP与UDP的区别原创 2020-09-28 20:19:07 · 408 阅读 · 0 评论 -
基数排序(java)思路分析及代码实现
点击查看基数排序思路分析基数排序完整代码:** * @Title: radixSort * @Description: 桶排序 * @param nums 待排序数组 */ public static void radixSort(int nums[]) { // 找最大值,确定数组中元素的最长位数maxLength,从而循环maxLength次 int max = nums[0]; for (int i =原创 2020-08-23 10:01:37 · 177 阅读 · 0 评论 -
归并排序(java)思路分析及代码实现
点击查看归并排序思路分析归并排序核心代码:/** * @Title: merge * @Description:拆分 * @param nums * @param left * @param right 最后一个元素的索引 * @param temp */ public static void merge(int nums[], int left, int right, int temp[]) { if (le原创 2020-08-23 09:58:59 · 229 阅读 · 0 评论 -
快速排序(java)思路分析及代码实现
点击查看快速排序思路分析快速排序核心代码: /** * @Title: quickSort * @Description: 快速排序 * @param nums 待排序数组 * @param left 数组最左边下标 * @param right 数组最右边下标 */ public static void quickSort(int nums[], int left, int right) { int temp =原创 2020-08-23 09:55:26 · 229 阅读 · 0 评论 -
希尔排序(java)思路分析及代码实现
点击查看希尔排序思路分析希尔排序核心代码:/** * @Title: shellSort * @Description: 希尔排序采用移动法即 先确定步长进行分段然后运用了简单插入排序法 * @param nums */ public static void shellSort(int nums[]) { int count = 0; // 排序次数计量 // gap为步长;gap每次(/2) for (in原创 2020-08-23 09:51:14 · 217 阅读 · 0 评论 -
插入排序(java)思路分析及代码实现
点击查看插入排序思路分析插入排序核心代码:/** * @Title: insertSort * @Description: 插入排序 * @param nums */ public static void insertSort(int nums[]) { for (int i = 1; i < nums.length; i++) { // 待插入值 int insertVal =原创 2020-08-23 09:48:12 · 232 阅读 · 0 评论 -
选择排序(java)思路分析及代码实现
选择排序思路分析点击查看选择排序核心代码:/** * @Title: selectSort * @Description: 先定最小值 * @param nums */ public static void selectSort(int nums[]) { for (int i = 0; i < nums.length - 1; i++) { int minIndex = i; int原创 2020-08-23 09:41:56 · 246 阅读 · 0 评论 -
冒泡排序(java)思路分析及代码实现
冒泡排序思路分析:点击查看冒泡排序核心代码:/** * @Title: bubbleSort * @Description: 先定最大值 * @param nums */ public static void bubbleSort(int nums[]) { //辅助变量 int temp = 0; //标识变量 boolean flag=false; for (int i = 0; i < nums.len原创 2020-08-23 09:38:03 · 233 阅读 · 0 评论 -
递归-八皇后问题(回溯算法Java)
问题描述在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法(92)算法思路分析第一个皇后放在第一行第一列第二个皇后放在第二行第一列,判断是否符合条件,不符合列数加一,依次把所有列试完。符合则排放第三个。第三个皇后放在第三行第一列,第二列…直到第8个皇后也能放在一个不冲突的位置,得到一个正确的解法当得到一个正确的解时,再栈回退到上一个栈,开始回溯,得到第一个皇后放在第一列的所有正确解然后回头把第一个皇后放第二列,循环1原创 2020-08-14 18:10:54 · 263 阅读 · 2 评论 -
迷宫问题(递归调用)分析与实现(回溯算法Java)
递归是一种算法结构回溯是一种算法思想递归调用规则当程序执行到一个方法时,就会开辟一个独立的空间(栈)每个空间的数据(局部变量)是独立的。递归需要遵守的重要规则执行一个方法时,就创建一-个新的受保护的独立空间(栈空间)。方 法的局部变量是独立的,不会相互影响。如果 方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据。归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError。当一个方法执行完毕,或者遇到return, 就会返回,遵守..原创 2020-08-14 11:43:02 · 268 阅读 · 0 评论 -
枚举法(穷举法)
穷举法也称枚举法这里是引用在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做穷举法.在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。常见的枚举法算法:1057: 素数判定1074: 百钱买百鸡1075: 聚餐人数统计枚举法思想:1.对每一种情况进行考虑2....原创 2020-04-08 16:04:22 · 8113 阅读 · 1 评论 -
Java switch case 语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。语法格式:switch(expression){ case value : .... break; case value : .... break; /* *有限多个case */ default : ...原创 2020-04-07 15:52:38 · 156 阅读 · 0 评论 -
JAVA 排序
1. 插入排序插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法。算法适用于少量数据的排序,时间复杂度O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(...原创 2020-03-25 12:14:02 · 179 阅读 · 0 评论