Java实现直接插入查找

 1 import java.util.Scanner;
 2
 3 /*算法思想:每趟将一个待排序的元素作为关键字,按照关键字值大小插入到已排好序的那部分序列的适当位置上,直到插入完成,*/
 4 /*平均时间复杂度O(n^2),空间复杂度O(1)*/
 5 /*特点:插入排序都是最后一趟完成之前,没有任何一个记录到达其最终位置*/
 6
 7 public class zhijiecharusort {
 8     public static void main(String strg[]){
 9         Scanner cin = new Scanner(System.in);
10         String str = cin.nextLine();
11         String st[] = str.split(" ");
12         int c[]=new int[st.length];
13         for(int i=0;i<st.length;i++){
14             c[i]=Integer.parseInt(st[i]);
15         }
16         insertSort(c);
17         for(int i=0;i<st.length;i++){
18             System.out.print(c[i]);
19             System.out.print(" ");
20         }
21         cin.close();
22     }
23     public static void insertSort(int R[]){
24         int temp;
25         int j;
26         for(int i=1;i<R.length;i++){
27             temp=R[i];
28             j=i-1;
29             while(j>=0&&temp<R[j]){
30                 R[j+1]=R[j];
31                 j--;
32             }
33             R[j+1]=temp;
34         }
35     }
36 }
时间: 2024-10-07 20:39:15

Java实现直接插入查找的相关文章

java的二分法查找数据

Java二分法查找的源代码:    二分查找是一种高效率线性表的查找算法.在查找时必须将线性表中的关键词排好序.基本思路是:先断定线性表的中心方位 mid=(first+last)/2:对比所要查找的关键词 key与中心方位的关键词的巨细,假如比key和mid.key持平则回来: key比mid.key大(假定为升序)这所要查找的关键词在mid和last之间:否则在first与mid之间.持续按照上面办法查找中心元素,直到找到为止.    详细完成如下package com.cgogo; /**

java之折半查找

//功能:二分查找import java.util.*; public class Demo1 {    public static void main(String[] args) {      int arr[]={2,5,7,12,25};//定义arr数组并赋值      System.out.print("请输入你需要查找的数:");      Scanner sr=new Scanner(System.in);      int a=sr.nextInt();      B

Java实现折半查找(二分法)

利用Java实现折半查找 基本思路:while递归循环,不断判断a[middle]是否等于data,如果等于则跳出循环,返回索引值,如果不等,则进行二分处理,直至两者相等为止:其中通过count计数器记录查找次数,当count次数超过20次时视为元素不存在(此处有待优化) package test; /* * 二分法查找(折半查找) * TGmoving * */ public class halfSearch { public static int HalfSearch(int a[],int

Java中的查找算法之顺序查找(Sequential Search)

Java中的查找算法之顺序查找(Sequential Search) a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位. b) 图例说明: 原始数据:int[] a={4,6,2,8,1,9,0,3}; 要查找数字:8 找到数组中存在数据8,返回位置. 代码演示: import java.util.Scanner; /* * 顺序查找 */ public class SequelSearch { public static vo

java正则表达式 前后查找

最近做软件 需要截取  一个 类似html标签内部的文本 采用了传统的方法 比如  <ming>(.*?)</ming> 来匹配字符串得出 <ming>sdfdfsdfdf</ming>  然后再用字表达式替换的功能 最近看了一本正则表达的书 发现java正则表达式是支持 前后查找的 效果如下; 直接可以一步获取 想要的值 下面列举出 前后查找的操作符: (?=)  向前查找 (?!)   负向前查找 (?<=) 向后查找 (?<!) 负向后查找

Java 实现顺序查找

1 package search; 2 3 import java.util.Scanner; 4 5 /*通常把查找过程中对关键字的平均比较次数,也叫平均查找长度(ASL)作为衡量一个查找算法效率优劣的标准: 6 * ASL=求和(p[i]*c[i]),(i=1~n).P[i]找到第i个记录的概率,c[i]找到第i个记录进行比较的次数*/ 7 /*顺序查找的思想:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k比较,若当前扫描的关键字与k相等,则查找成功, 8 * 若扫描结束后,

Java图片上查找图片算法

之前用按键精灵写过一些游戏辅助,里面有个函数叫FindPic,就上在屏幕范围查找给定的一张图片,返回查找到的坐标位置. 现在,Java来实现这个函数类似的功能. 算法描述: 屏幕截图,得到图A,(查找的目标图片为图B): 遍历图A的像素点,根据图B的尺寸,得到图B四个角映射到图A上的四个点: 得到的四个点与图B的四个角像素点的值比较.如果四个点一样,执行步骤4:否则,回到步骤2继续: 进一步对比,将映射范围内的全部点与图B全部的点比较.如果全部一样,则说明图片已找到:否则,回到步骤2继续: 这里

Java 实现二分查找\折半查找

二分查找又称折半查找,优点是比较次数少,查找速度快:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表. 该算法要求: 1.  必须采用顺序存储结构. 2.  必须按关键字大小有序排列. 该算法时间复杂度最坏为:O(logn) 注意点有mid.low.high 其Java实现代码如下(该代码有缺陷,只是基本实现,有待完善): public class BinarySearch { /** * @param args */ public static

java内存泄漏查找

java由于拥有自动垃圾回收机制,所以一般情况下,我们不需要考虑内存泄漏的问题.jvm会自动收回无用的对象.所谓无用的对象,表示你的程序不可能再访问的对象. 但是,有一种情况必须考虑,就是要防止容器(List,Map等)内的对象无限增大.因为对象存贮在容器中,会被容器引用,从而如果容器的有效,容器内的对象就不会释放. 一旦真的出现内存泄漏,随着时间的推移,java程序逐渐增大内存消耗,最后出现OutOfMemory异常而终止. 如何查找内存泄漏? 这种情况下,一般需要找到内存泄漏的对象.也就是要