冒泡排序 冒泡排序最为出名的排序算法之一,共八大排序 代码相当简单:两层循环,外层冒泡层数,里层对数组依次比较和交换 时间复杂度O(n2) 常考算法:重点 冒泡法:两层循环:外层冒泡轮数,里层依次比较 如果数组中第一个数比第二个数大,我们就交换他们的位置 每次比较都有一个最大,或
Arrays类 数组的工具类java.util.Arrays; 定义数组 int[] a = {1,3,2,6,5,4,8,9,7,10}; System.out.println(a);//直接打印a的结果:[I@14ae5a5 Arrays.toString()方法 System.out.println(Arrays.toString(a));//Arrays.toString()方法 printArray(a); 数组进行排序:升序 Arrays
二维数组: 多维数组:数组中的元素也是数组 package com.kuang.array; //多维数组:数组中的元素也是数组 public class mularraysDemo05 { /* 1,2 array[0] 2,3 array[1] 3,4 array[2] 4,5 array[3] 5,6 array[4] */ public static void
多线程一知半解?看这篇就够了!转自https://www.cnblogs.com/HaoYangkun/p/14185008.html #线程详解 1. Thread基础之从 WinDbg 角度理解你必须知道的时间和空间上的开销 一:空间上的开销 1、thread本身来说就是操作系统的概念。。。 <1> thread的内核数据结构,其中有osid,context =>
稀疏数组 为什么要用稀疏数组? 二维数组存在大量的0或者同一值时,可以使用稀疏数组来保存该数组 稀疏数组 记录,行 列 有效数字个数 1.1.创建数组 //1,创建一个二维数组11*11 0:没有棋子 1:代表黑色棋子 2:白色棋子 int[][] array1 = new int[11][11]; array1[1][2]
方法的重载 方法的重载:名称相同 参数列表不同(参数个数不同或者数据类型不同) 返回值可相同可不同 比int数据大小 public static int max(int num1,int num2){ int result = 0; if(num1==num2){ System.out.println("num1==num2"); return 0;//终止方法
方法的定义 //加法 public static int add(int a,int b){ //方法中的a,b为形参 return a+b; } public static void test(){ Lable:for(int i=1;i<=100;i++){ for(int j=2;j<=i/2;j++){ if(i%j==0){ continue Lable;
方法 方法的定义:解决一类问题有序步骤的组合 System(类).out(对象).println()(方法); 方法的原子性:就是一个方法只完成1个功能 命名规则:首字母小写后面驼峰原则 Java只是值传递, 值传递:实际参数把它的值传递给形参 引用传递:实际参数把地址传递给形参,两者指向同一个地址
递归 递归结构 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。 递归体:什么时候需要调用自身方法。 例子 package com.kuang.method; //递归结构两部分 //递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。 //递归体:什么时候需要调用自身方法。 public class 递
数组长度 public class Demo03 { public static void main(String[] args) { //args.length数组长度 for(int i = 0;i<args.length;i++){ System.out.println("args"+i+"]:"+args[i]); } } } 可变参数 普通参数在可变参数前,且
聚类(Clustering)是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。 1.K-Means聚类鸢尾花数据 from sklearn.d
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数数以一个类型别,则该样本也属于这个类别,并具有该类别上样本的特征。该方法在确定分类决策上,只依据最近邻的一个或者几个样本的类别来决定待分样本所属的类别。 1.鸢尾花分类问题 from sklearn.neighbors im
标识符 Java所有组成部分都需要名字。类名,变量名以及方法名都被称为标识符 关键字 abstract assert boolean break byte case catch char class const continue default do double else enum extend final finally float for goto if implements import ins
1、广度优先搜索和深度优先搜索 广度优先 广度优先搜索的特征为从起点开始,由近及远进行广泛的搜索。因此,目标顶点离起点越近,搜索结束得越快。(候补顶点采用,FIFO先进先出) 深度优先 深度优先搜索的特征是沿着一条路径不断往下,进行深度搜索。(候补顶点采用栈,LIFO后进先出) 广
链表算法 遍历 查找 清空 销毁 求长度 排序 删除节点 插入节点 //分配一个临时节点,不存放有效数据的头结点。pHead为指向头结点的指针变量(头指针) PNODE pHead = (PNODE)malloc(sizeof(NODE));//函数内的pHead为局部变量(临时存储) if(NULL == pHead) {
我是一个个人小开发,博客只供自己记录一些技能,以免忘记。勿喷 快速排序实现 1 #include <iostream> 2 #include <vector> 3 4 using namespace std; 5 6 7 void Quicksort(vector<int> &q,int l,int r) 8 { 9 if( l >= r) return; 10 int i = l
最基础的:UI-BLL-DAL 这是我们耳熟能详的分层 首先我听到依赖注入之后看似非常的复杂 实际则是:为了实现不同的团队在不同的层上工作。我们可以让一个团队处理数据访问层,一个团队处理业务层,一个团队处理UI。 首先建立:最基本的三层架构 实体层: public class Produ
如果 cookie 里已经有了JSESSIONID ,那就可以从 request 中获取。 但是它是怎么来的呢?答:是在最开始生成会话的时候来的。那如果想要在生成的时候,就获取到JSESSIONID 该怎么做? 答:也是有方法的,在生成JSESSIONID 的时候,从 response 的 header 里获取。 这里就需要知道,具体是哪个方
在一些关键业务接口通常会对请求参数进行签名验证,一旦篡改参数服务端就会提示签名校验失败。在黑盒渗透过程中,如果没办法绕过签名校验,那么就无法进一步漏洞检测。 微信小程序的前端代码很容易被反编译,一旦签名加密算法和密钥暴漏,找到参数的排序规则,那么就可以篡改任意数据并根据算