第一篇:JAVA四种基本排序的总结
JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是 插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法:即:插入法&冒泡法
一 插入法:遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。交换是相邻遍历移动,双重循环控制实现.这种排序法属于地头蛇类型,在我的地牌上我要把所有的东西按一定的顺序规整,过来一个,规整一个.处理代码如下: public void sort(int[] data){ int temp;
for(int i=1;i〈data.length;i++){ for(int j=i;(j〉0)&&(data[j]〉data[j-1]);j--){
temp=date[j];data[j]=data[j-1];data[j-1]=temp;} } } 二冒泡法:比较容易,它的内层循环保证遍历一次后,集合中最小(大)元素出现在它的正确位置,下一次就是次小元素。。该方法在集合分布的各种情况下交换移动的次数基本不变,属于最慢的一种排序。实现也是双重循环控制。这种排序法属于过江龙,就是要找到极端,但是过奖龙也有大哥,二哥等,所以他们只能是大哥挑了二哥挑.处理代码如下: public static int [] maopao(int[] data){ int temp;
for(int i=0;i〈data.length-1;i++){ for(int j=i+1;j〈data.length;j++〉{ if(data[i]〈data[j]〉{ temp=data[i];data[i]=data[j];data[j]=temp;} 〉 〉
return data;
三选择法:该方法只是通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作,类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后,我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.public static void xuanze(int[] data){ int temp;
for(int i = 0;i 〈 data.length;i++〉 { int lowIndex = i;
for(int j = data.length-1;j)i;j--){ if(data[j])data[lowIndex]){ lowIndex = j;} } temp=data[i];
data[i]=data[lowIndex];data[lowIndex]=temp;} } 四 Shell排序:
它是对插入排序的一种改进,是考虑将集合元素按照一定的基数划分成组去排序,让每一组在局部范围内先排成基本有序,最后在进行一次所有元素的插入排序。public void sort(int[] data){ for(int i=data.length/2;i)2;i/=2){ for(int j=0;j〈i;j++〉{ insertSort(data,j,i);} 〉
insertSort(data,0,1);〉
private void insertSort(int[] data, int start, int inc){ int temp;
for(int i=start+inc;i〈data.length;i+=inc〉{ for(int j=i;(j)=inc)&&(data[j]〈data[j-inc]〉;j-=inc〉{ temp=data[j];data[j]=data[j-inc] data[j-inc]=temp;} 〉 〉
第二篇:Java排序总结
倒叙排序
第一种利用一个数组来盛放后,再来倒叙输出 public class daoxu {
} 第二种利用一个变量来转换后,倒序输出 public class daoxu {
public static void main(String[] args{ int[] arr[] ={2,4,6,87,13,15};for(int i = 0;i < arr.length/2;i++){ int temp = arr[i];public static void main(String[] args){
int[] arr ={2,4,6,8,7,1,3};int[] num =new int[arr.length];for(int i = 0;i < arr.length;i++){
}
} } for(int i = 0;i < num.length;i++){ System.out.print(“ ”+num[i]+“ ”);num[i] = arr[arr.length1];num[arr.length1] = arr[i];
arr[i] =arr[arr.length-i-1 ];
arr[arr.length-i-1] =temp;
} for(int i = 0;i < arr.length;i++){
System.out.print(arr[i] +“ ”);} } }
冒泡排序(1.是将其升序排布)
public class maopao { public static void main(String[] args){
int[] arr = {2,5,8,9,1,0,25};
for(int i = 0;i < arr.length;i++){ for(int j = 0;j < arr.length-i-1;j++){
//2.arr[j+1] > arr[j],则其会降序输出
if(arr[j+1] int temp = arr[j]; 如果将其 } } } } arr[j] = arr[j+1];arr[j+1] = temp;} for(int i = 0;i < arr.length;i++){ } System.out.print(arr[i]+“ ”);升序排列 import java.util.Arrays; public class shengxu { public static void main(String[] args){ int[] arr = {1,5,0,2,10,4,78,9};Arrays.sort(arr);for(int i = 0;i < arr.length;i++){ } System.out.print(arr[i]+“ ”);} } 降序排列 第一种先升序再降序 import java.util.Arrays;public class jiangxu { } 第二种利用冒泡排序,然后再将其反向输出 public class maopao { public static void main(String[] args){ } int[] arr ={2,4,6,8,0,1,3,15,89,5};Arrays.sort(arr);for(int i = 0;i < arr.length/2;i++){ } for(int i = 0;i < arr.length;i++){ } System.out.print(arr[i]+“ ”);int temp = arr[i];arr[i]=arr[arr.length-i-1];arr[arr.length-i-1]= temp; } public static void main(String[] args){ } } for(int i = arr.length-1;i >=0;i--){ } System.out.print(arr[i]+“ ”);int[] arr = {2,5,8,9,1,0,25};for(int i = 0;i < arr.length;i++){ for(int j = 0;j < arr.length-i-1;j++){ } if(arr[j+1] } int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;第三种利用冒泡排序的倒叙输出 public class maopao { public static void main(String[] args){ int[] arr = {2,5,8,9,1,0,25};for(int i = 0;i < arr.length;i++){ } } for(int j = 0;j < arr.length-i-1;j++){ } if(arr[j+1]>arr[j]){ } int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;} for(int i = 0;i 一、标识符及字符集 Java语言规定标识符是以字母、下划线“_”或美元符号“$”开始,随后可跟数字、字母、下划线或美元符号的字符序列。Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。为增强程序可读性,Java作如下的约定: 1.类、接口:通常使用名词,且每个单词的首字母要大写 2.方法:通常使用动词,首字母小写,其后用大写字母分隔每个单词 3.常量:全部大写,单词之间用下划线分隔 4.变量:通常使用名词,首字母小写,其后大写字母分隔每个单词,避免使用$符号。 Java语言使用国际字符集(Unicode)。Unicode字符集定义了一套国际标准字符集。通常的ASCII码是8位的,而Unicode字符集中的每个字符占16位,即2个字节,整个字符集共包括65336个字符,兼容ASCII,排在Unicode字符集最前面的256个字符就是ASCII码。Unicode除了可以表示256个ASCII码外,还可以表示汉字、拉丁语、希腊字母、朝鲜语等。 Java标识符总结:1.由字母、数字、_或$组成,不能以数字开头;2.严格区分大小写;3.长度不限 二、关键字 Java常用关键字列表如下: 关键字 含义 用在类的声明中来指明一个类是不能被Abstract 实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 Boolean Break 布尔类型,只有true或者false 停止,并跳出本层循环 8bit(位),也就是8个1/0表示,即二进制 Byte 用来定义一组分支选择,如果某个值和Case switch中给出的值一样,就会从该分支开始执行。 用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。用来定义一个字符类型 类 在Java中,const是作为保留字以备扩充,同样的保留字以备扩充还有goto.你Const 可以用final关键字.final也可以用于声明方法或类,被声明为final的方法或类不能被继承。一般C里是const 对应java用final 用来打断当前循环过程,从当前循环的最Continue 后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。配合switch跟case使用,但case中没Default 有找到匹配时,则输出或者为default后面的语句。 用来声明一个循环,这个循环的结束条件可以通过while关键字设置 用来定义一个double类型的变量 如果if语句的条件不满足就会执行该语句。Catch Char Class Do Double Else Extends extends 继承 类X 通过extend 类Y来 添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。一个接口extends另外一个接口来添加方法。 False 假的 一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。Final 更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。 用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。用来定义一个浮点数变量 用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。虽然为Java关键字,但是仅在C语言里面使用,Java不提供Goto语句 Java编程语言的一个关键字,用来生成一If 个条件测试,如果条件为真,就执行if下的语句。 Java(TM)编程语言的一个关键字,在类的Implements 声明中是可选的,用来指明当前类实现的接口。 Java(TM)编程语言的一个关键字,在源文Import 件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加Finally Float For Goto 上包的名字。 一个二操作数的Java(TM)语言关键字,用Instaceof 来测试第一个参数的运行时类型是否和第二个参数兼容。 Java(TM)的一个关键字,用来定义一个整形变量 Java(TM)的一个关键字,用来定义一系列Interface 的方法和常量。它可以被类实现,通过implements关键字。 Long Native New 用来定义一个long类型的变量 本地方法。 用来创建一个新的方法 当String类型没赋值时,该变量的值为Null 包的意思 用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。在方法和变量的声明中使用,它表示这个Protected 方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。Int Null Package Private Public Return 用来结束一个方法的执行。它后面可以跟 一个方法声明中要求的值。 Short 用来定义一个short类型的变量。用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个Static 实例。“static” 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。 Super 父类 是一个选择语句,与case,default,break一起使用。线程同步 用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。 允许用户抛出一个exception对象或者任何实现throwable的对象 用在方法的声明中来说明哪些异常这个Throws 方法是不处理的,而是提交到程序的更高一层。 用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,Transient transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。Switch Synchronized This Threadsafe Throw True 真的 用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句Try 块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。 用在Java语言的方法声明中说明这个方Void 法没有任何返回值。“void”也可以用来表示一句没有任何功能的语句。 用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。volatile while 分类如下: 1.访问控制:private 私有的 protected 受保护的 public 公共的 2.类、方法和变量修饰符abstract 声明抽象 class 类 extends 扩允,继承 final 终极,不可改变的implements实现 interface 接口 native 本地 new 新,创建 static 静态 strictfp 严格,精准synchronized 线程,同步 transient 短暂 volatile 易失 3.程序控制语句 break 跳出循环 continue 继续 return 返回 do 运行 while 循环 if 如果 else 反之 for 循 instanceof 实例 switch 开关 case 返回开关里的结果 default 默认 4.错误处理 catch 处理异常 finally 有没有异常都执行 throw 抛出一个异常对象 throws 声明一个异常可能被抛出 try 捕获异常 5.包相关import 引入 package 包 6.基本类型 boolean 布尔型 byte 字节型 char 字符型 double 双精度 float 浮点 int 整型 long 长整型 short 短整型 null 空 true 真 false 假 7.变量引用 super 父类,超类 this 本类 void 无返回值 注意: 1、所有的java关键字都是小写的 2、goto 和const 是保留关键字,在java 中没使用 3、strictfp 和volatile 不常用; sizeof、then 不是关键字。4、true,false,null 不是严格意义上的关键字,而是literals 三、运算符 Java基 本 的 运 算 符 按功能分有 下 面 几 类 : 1.算 术 运 算 符(+,-,*,/,%,++,--)Java对 加 运 算 符 进 行 了 扩 展 ,使 它 能 够 进 行 字 符 串 的连 接,如 “abc”+“de”,得到 串 “abcde”。与 C、C++不 同 ,对 取 模 运 算 符 %来 说 ,其 操 作 数 可 以为浮点 数 , 如37.2%10=7.2。i++与 ++i的 区 别:i++在 使 用 i之 后 ,使 i的 值 加 1,因 此 执 行 完 i++后 ,整 个 表达式的 值 为 i,而 i的 值变 为 i+1;++i在 使 用 i之 前 ,使 i的 值 加 1,因 此 执 行 完 ++i后 ,整 个 表达式和 i的 值 均 为 i+1。 2.关 系 运 算 符(>,<,>=,<=,==,!=)该运算符的特点是:运算完的结果,要么是true,要么是false。Java中 ,任 何 数 据 类 型 的 数 据(包 括 基 本 类 型 和 组 合 类 型)都可 以 通 过 ==或!=来 比 较 是 否 相 等(这 与 C、C++不 同)。关 系 运 算 符 用 来 比 较 两 个 值 ,返 回 布 尔 类 型 的值true或 false,而不是C、C++中 的 1或 0。 3.布 尔 逻 辑 运 算 符(& | ^!&& ||)逻辑运算符除了!外都是用于连接两个boolean类型表达式。&: 只有两边都为true结果是true。否则就是false。|:只要两边都为false结果是false,否则就是true ^:异或:和或有点不一样。两边结果一样,就为false。两边结果不一样,就为true.& 和 &&区别: & :无论左边结果是什么,右边都参与运算。&&:短路与,如果左边为false,那么右边不参数与运算。| 和|| 区别:|:两边都运算。 ||:短路或,如果左边为true,那么右边不参与运算。4.位 运 算 符(>>,<<,>>>,&,|,^,~)用于操作二进制位的运算符,如2*8 = 2<<3。>>>(无符号右移)5.赋 值 运 算 符(= +=-= *= /= %=)6.条 件 运 算 符(?:)7.其 它(包 括 分 量 运 算 符 · ,下 标 运 算 符 [],实 例 运 算 符 instanc eof,内 存 分 配运 算 符 new,强 制 类 型 转 换 运 算 符(类 型), 方 法调 用 运 算 符()等)例子:对两个变量的数据进行互换。不需要第三方变量。 int a = 3,b = 5;-->b = 3,a = 5;a = a + b;a = 8;b = ab;a = 5;a = a ^ b;// b = a ^ b;//b = a ^ b ^ b = a a = a ^ b;//a = a ^ b ^ a = b; Java 中共有 54 种运算符,按优先级可以分为 14 级: 优先级 操作符 含义 关联性 用法 --1 [ ] 数组下标 左 array_name[expr].成员选择 左 object.member ()方法参数 左 method_name(expr_list)()实例构造 左 class_name(expr_list)++ 后缀自增 左 lvalue++--后缀自减 左 lvalue--2 ++ 前缀自增 右 ++rvalue--前缀自减 右--lvalue ~ 按位取反 右 ~expr!逻辑非 右!expr + 一元加 右 +expr减 左 expr-expr + 字符串连接 左 strExpr + strExpr 6 >> 有符号右移 左 expr >> distance >>> 无符号右移 左 expr >>> distance 7 < 小于 左 expr < expr <= 小于等于 左 expr <= expr > 大于 左 expr > expr >= 大于等于 左 expr >= expr instanceof 类型比较 左 ref instanceof refType == 等于 左 expr == expr!= 不等于 左 expr!= expr & 整数按位与 左 integralExpr & integralExpr & 布尔与 左 booleanExpr & booleanExpr 9 ^ 整数按位异或 左 integralExpr ^ integralExpr ^ 布尔异或 左 booleanExpr ^ booleanExpr 10 | 整数按位或 左 integralExpr | integralExpr | 布尔或 左 booleanExpr | booleanExpr 11 && 逻辑与 左 booleanExpr && booleanExpr 12 || 逻辑或 左 booleanExpr || booleanExpr 13 ? : 条件运算 右 booleanExpr ? expr : expr 14 = 赋值 右 lvalue = expr *= 乘赋值 右 lvalue *= expr /= 除赋值 右 lvalue /= expr %= 模赋值 右 lvalue %= expr += 加赋值 右 lvalue += expr += 字符串连接赋值 右 lvalue += expr-= 减赋值 右 lvalue-= expr <<= 左移赋值 右 lvalue <<= expr >>= 有符号右移赋值 右 lvalue >>= expr >>>= 无符号右移赋值 右 lvalue >>>= expr &= 整数按位与赋值 右 lvalue &= expr &= 布尔与赋值 右 lvalue &= expr |= 整数按位或赋值 右 lvalue |= expr |= 布尔或赋值 右 lvalue |= expr ^= 整数按位异或赋值 右 lvalue ^= expr ^= 布尔异或赋值 右 lvalue ^= expr 运算符不但有优先级,还有关联性。上表中关联性为“左”表示该表达式从左边开始进行运算;关联性为“右”表示该表达式从右边开始进行运算。 四、流程控制语句(If、switch、do while、while、for、break、continue)1.当判断数据范围,获取判断运算结果boolean类型时,需要使用if;当判断固定个数的值的时候,可以使用if,也可以使用switch。但是建议使用switch,效率相对较高。switch(变量){ case 值:要执行的语句;break;… default:要执行的语句;} 工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了就执行哪个case后面的语句,如果没有相同的则执行default后面的语句; 细节:1):break是可以省略的,如果省略了就一直执行到遇到break 为止; 2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种; 3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。 2.当某些语句需要执行很多次时,就用循环结构。 while和for可以进行互换。区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。 3.break:作用于switch,和循环语句,用于跳出,或者称为结束。break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。4.continue:只作用于循环结构,继续循环用的。作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。 四种基本侦查模式 一、从案到人 二、从人到案 三、从案到案 四、从物到案 “从案到人” 基本步骤:受理、立案→现场勘查→调查访问→采取各种侦查措施→发现犯罪嫌疑线索→查明并抓获犯罪嫌疑人→讯问→破案。 主要适用于:杀人、放火、爆炸、投毒等因果关系比较明显的案件;现场有明显犯罪线索的案件;发生在相关静态区域内的案件等。 “从案到人”是一种针对现行犯罪的传统的侦查模式,为广大侦查人员熟悉,适用于大多数刑事案件。 该模式侦查意图方向清楚,地区明确,针对性强,在侦查工作中发挥着主导作用。 “从案到人”的缺点: 具有被动性和滞后性,效率较低,资源消耗大,是一种以人力劳动为特征的粗放型破案方式。 用它来对付现代的流窜犯罪、智能犯罪、经济犯罪、系列犯罪,有明显的不适应之处。 二、“从人到案” “从人到案”是指侦查人员以各项侦查基础业务、专门侦查手段为依托,从个体或群体在特定或者不特定场所暴露出的、与已知或未知的犯罪相关联的嫌疑活动或嫌疑信息入手,确认其行为性质或确诊其与特定联系案件之间的侦查方式。 “从人到案”的侦查模式是围绕着犯罪嫌疑人是否实施以及实施了哪些犯罪行为展开工作的。 “从人到案” 这里的“人”是指刑嫌调控、阵地控制、情报信息工作中发现的犯罪嫌疑人,或者是办理团伙犯罪案件中发现的新的犯罪成员,在审理现行犯罪中发现余罪未清的惯犯、流窜犯,及其他在办案中扩大战果进而发现的嫌疑对象等。 这里的“案”是指犯罪嫌疑人着手准备的预谋案件、正在实施的现行案件、久侦未破的积案和尚未发现的隐案等。 “从人到案”特点 “从人到案”的思维进程是从已知对象的基本情况和反常现象出发,确定犯罪嫌疑人予以控制,查明与之有关的而侦查机关尚未发现的案情。 基本步骤:获取线索→分析犯罪情报→“对人”立案→制定侦查方案→全面推进侦查→发现犯罪行为→获取并审查证据→破案。 “从人到案” “从人到案”可以通过检索情报信息,以人找案,主动出击,或者在获取进行重大犯罪的犯意线索之后,从人入手侦破和控制预谋犯罪。 也可以从在押犯罪嫌疑人入手,通过调查取证深挖余罪,扩大战果。 因而,加强情报信息工作,深入调查取证是该侦查模式的核心内容。 适用范围: 流窜犯罪,外来人口犯罪和跨地区大范围跳跃式犯罪,因果关系不明朗的侵财型等多发性案件,现场痕迹物证不明显的案件等。 “从人到案” “从人到案”是以人中心开展侦查,即通过对被管理、被控制的嫌疑对象主动开展全方位的情报调查和对有关情报信息的分析研究,发现违法犯罪线索和证据,进而破案。 侦查起点是从各方面的情报信息中发现犯罪嫌疑人,以此作为侦查的切入点。因而,对刑事侦查基础工作,特别是情报信息工作依赖很大。 刑侦基础工作 1、情报资料:各种情报信息的收集、研判(“情报主导侦查”),违法犯罪人员信息库的建设和维护(有前科者的重新犯罪率30—40%)。 2、刑嫌调控:是公安机关对刑事犯罪嫌疑人员秘密进行登记、调查,为侦查破案发现线索、预防、控制犯罪的一项基础业务工作。 所谓刑嫌人员,是指具有实施犯罪的主观因素,有可能犯罪,又有犯罪可疑迹象,尚未掌握其已进行犯罪的事实,不能对其立案侦查的人员。 主要侦查措施 3、阵地控制:是指侦查机关在犯罪嫌疑人经常活动的地点、行业、场合(复杂场所、特种行业),建立公开和秘密的力量,用以发现侦查线索和查缉犯罪嫌疑人的一项侦查措施。 4、刑事特情:是公安机关侦查部门领导和指挥的,同刑事犯罪活动作斗争的特殊的秘密工作力量。 其主要任务用于搜集刑事犯罪活动情报,进行专案侦查,发现、控制犯罪嫌疑人和控制重要复杂场所以及用于狱内侦查。 “刑事特情”是公安机关内部使用的专用名词,不得对外公开和向特情本人宣布。 侦查的主线是先“人”后“案”,将侦查工作放在案前,具有一定的主动性。 体现了“主动进攻、先发制人”的战略思想,突破了以案为侦查起点的传统模式,提高了侦查机关发现、预防、控制和和打击预谋犯罪的能力。 两种模式思维方式比较 (一)“从案到人”的思维方法 主要运用演绎思维方法,是从犯罪现场的的客观情况回溯推理,确定、查获犯罪嫌疑人,从而破案。 主要是一种线型的侦查活动,以案件现场为中心,判明案件性质,刻画犯罪嫌疑人,明确侦查方向与范围,拟定侦查方案,开展侦查活动。 (二)“从人到案”的思维方法 主要运用的是归纳思维方法,是从众多的情报信息中综合分析发现犯罪嫌疑人,从可疑迹象中查明犯罪事实、获取证据,从而破案。 是一种发散型的侦查活动,以情报信息为基础,由面到点,再由点到面,开展外围侦查和内线控制,获取证据、适时破案。 三、“从案到案” “从案到案”,是指在侦查案件时,将可能是同一个或同一伙犯罪分子思维的其他刑事案件串并起来,综合分析和利用每起案件所蕴涵的犯罪信息和破案条件,选择有利的侦查突破口,实现侦破一案带破彼案的目的。 思维方法:类比思维 类比思维,是根据两个或两类事物的部分属性相同或相似,从而推出其余属性相同的推理。 类比思维理主要运用于并案侦查。 并案根据: “硬件”包括指纹、足迹、工具痕迹、DNA、笔迹、微量物证、枪弹痕迹等; “软件”是指侦查人员在前者基础上,通过主观分析得出的犯罪动机、犯罪心理、作案规律、作案手段、犯罪嫌疑人应当具备的条件等“主观推论”。 四、从物到案 “从物到案”,是指通过对各种疑似被盗、被抢的物品开展侦查,发现线索,查找犯罪嫌疑人,破获案件的方式。 “从物到案”,是以对赃物或其他特定物品(如违禁物品)的严密查控为前提和基础的。 四种侦查模式各有其独特功能,不可偏废、相互取代。四者是相互联系、互为补充、相辅相成的关系。 在特定案件侦查中,往往是通过几种模式相互结合侦破案件的。 /*选择排序*/ public class SelectSort2 { public static void sort(int[] tempArr){ for(int i =0;i { /* 当初错误认为此处与冒泡排序极为相像,甚至觉得选择排序与冒泡排序毫无差别,其实相反,冒泡循环意味着每一次 循环都会将相邻的两个数比较这样每次都会排出数组中最大或最小的数。然后再次执行外层循环,再继续进入内层循环 再依次进行比较。 选择排序则是,第一次循环:咬定第一个数角标i=0的元素,依次与后面的元素比较,将最小或最大的数排出来,再进入 外层的第二次循环,并且此时咬定的数为角标为1的元素,但因为之前已将全数组中最小或最大的数排出所以没有必要再 与数组中角标为零得数比较 而是通过 j=i+1 将待比较的角标变成[ 2、3、...、tempArr.length)。 */ for(int j =i+1;j { if(tempArr[i]>tempArr[j]) { int temp = tempArr[i]; tempArr[i] = tempArr[j]; tempArr[j] = temp; } } } } public static void arrPrint(int[] tempArr){ System.out.print(“[”); for(int i = 0;i { if(i!= tempArr.length-1) { System.out.print(tempArr[i]+“,”); } else { System.out.println(tempArr[i]+“]”); } } } public static void main(String args[]){ int[] arr = new int[]{10,2,-7,8,1,12,6,7,9,3};arrPrint(arr);sort(arr);arrPrint(arr);} } /*冒泡排序*/ public class MpSort2 { public static void sort(int[] tempArr){ for(int i = 0;i { for(int j = 0;j { if(tempArr[j]>tempArr[j+1]) { int temp = tempArr[j]; tempArr[j] = tempArr[j+1]; tempArr[j+1] = temp; } } } } public static void arrPrint(int[] tempArr){ System.out.print(“[”); for(int i = 0;i { if(i!= tempArr.length-1) { System.out.print(tempArr[i]+“,”); } else { System.out.println(tempArr[i]+“]”); } } } public static void main(String[] args){ int[] arr = new int[]{10,2,-7,8,1,12,6,7,9,3}; arrPrint(arr); sort(arr); arrPrint(arr);} }第三篇:java基本语法总结
第四篇:四种基本侦查模式
第五篇:冒泡排序及选择排序Java实现心得