1. package aa;
  2. class InsertSort{
  3. private long[] a;
  4. private int nElems;
  5. //构造方法
  6. public InsertSort(int max){
  7. a = new long[max];
  8. nElems = 0;
  9. }
  10. //插入方法
  11. public void insert(long value){
  12. a[nElems] = value;
  13. nElems ++;
  14. }
  15. //显示方法
  16. public void display(){
  17. for(int j = 0; j < nElems; j++)
  18. {
  19. System.out.println(a[j] + " ");
  20. }
  21. System.out.println("");
  22. }
  23. //排序方法
  24. public long[] insertionSort(){
  25. int out,in;
  26. for(out = 1; out < nElems; out++)
  27. {
  28. long temp = a[out];
  29. in = out;
  30. while(in > 0 && a[in-1] >= temp)
  31. {
  32. a[in] = a[in - 1];
  33. in --;
  34. }
  35. a[in] = temp;
  36. }
  37. return a;
  38. }
  39. //去重方法
  40. public void noDups(long[] arr){
  41.  
  42. for(int i = 1; i < nElems - 1; i++)//遍历数组元素,从第二项开始
  43. {
  44. for(int j = 0; j < i ; j++)//每一轮比较的次数
  45. {
  46. if(a[j] == a[i]) //如果遍历项和之前某一项相等
  47. {
  48. int k = i;//取出遍历项的索引
  49. while(k+1 < nElems){//遍历 遍历项之后的元素项
  50. a[k] = a[k+1];//将遍历项之后的元素项前移一位
  51. k++;
  52. }
  53. nElems --;//数组长度减一
  54. i--;//因为遍历项后一项前移到遍历项,如果i不减一则少比较一项
  55. }
  56.  
  57. }
  58. }
  59. }
  60. }
  61. public class InsertSortApp {
  62. public static void main(String[] args){
  63. int maxSize = 100;
  64. InsertSort arr = new InsertSort(maxSize);
  65.  
  66. arr.insert(77);
  67. arr.insert(99);
  68. arr.insert(44);
  69. arr.insert(55);
  70. arr.insert(22);
  71. arr.insert(88);
  72. arr.insert(11);
  73. arr.insert(00);
  74. arr.insert(77);
  75. arr.insert(77);
  76.  
  77. arr.display();
  78. long[] sortarr = arr.insertionSort();
  79. arr.display();
  80. arr.noDups(sortarr);
  81. arr.display();
  82. }
  83.  
  84. }

  

java不用任何已有方法完全自写的去重法的更多相关文章

  1. JAVA如何调用C/C++方法

    JAVA如何调用C/C++方法 2013-05-27 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能.解决JAVA对本地操作的 ...

  2. 理解JAVA - 面向对象(object) - 属性,方法

    理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...

  3. 如何解救在异步Java代码中已检测的异常

    Java语言通过已检测异常语法所提供的静态异常检测功能非常实用,通过它程序开发人员可以用很便捷的方式表达复杂的程序流程. 实际上,如果某个函数预期将返回某种类型的数据,通过已检测异常,很容易就可以扩展 ...

  4. java 调用webservice的各种方法总结

    java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...

  5. Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法

    Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法 java.lang.OutOfMemoryError: Java heap sp ...

  6. Java常见序列化与反序列方法总结

    很多商业项目用到数据库.内存映射文件和普通文件来完成项目中的序列化处理的需求,但是这些方法很少会依靠于Java序列化.本文也不是用来解释序列化的,而是一起来看看面试中有关序列化的问题,这些问题你很有可 ...

  7. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  8. 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)

    本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...

  9. JVM总结-Java 虚拟机是怎么识别目标方法(下)

    1. 虚方法调用 在上一篇中我曾经提到,Java 里所有非私有实例方法调用都会被编译成 invokevirtual 指令,而接口方法调用都会被编译成 invokeinterface 指令.这两种指令, ...

随机推荐

  1. Angular7教程-05-搭建项目环境

    1. 本节说明 本节以及后面的内容我们将会通过搭建一个简单的博客程序来对angular进行介绍,项目使用前端框架是bootstrap.版本v3.3.7,另外需要安装jquery.关于bootstrap ...

  2. python教程(六)·字符串

    我们已经学习了字符串的使用方法,我们还学习了使用索引和分片操作字符串,经历了这么长的时间,相信大家也有所掌握:本节将讨论并学习字符串的格式化与字符串的常用方法 字符串格式化 字符串是序列的一种,所以所 ...

  3. 编写DVWA暴力破解High级别的Python脚本

    1. 过程(不查看源代码) 使用burpsuite或者owasp zap抓取数据包,可以看出页面执行过程如下: 首先获取上一次请求的token,然后sleep几秒,最后使用get方法提交验证. 2. ...

  4. C语言 编程练习22

    一.题目 1.编一个程序,输入x的值,按下列公式计算并输出y值: 2.已知数A与B,由键盘输入AB的值,交换它们的值,并输出. 3.给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位 ...

  5. golang基础--Interface接口

    接口是一个或多个方法签名名的集合,定义方式如下 type Interface_Name interface { method_a() string method_b() int .... } 只要某个 ...

  6. 项目开发设计模式理解之MVC模式

    项目开发设计模式之MVC模式: M model 模型层 V view 视图层 C control 控制器 MVC模式在B/S架构下使用很广泛的软件设计模式,分成三个相对独立的模块构成,model+vi ...

  7. 20155213 实验一《Java开发环境的熟悉》实验报告

    20155213 实验一<Java开发环境的熟悉>实验报告 一. 实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 输入cd Code进入Code文件夹里 ...

  8. 20155338 2016-2017-2 《Java程序设计》第九周学习总结

    20155338 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 · 数据库本身是个独立运行的应用程序 · 撰写应用程序是 ...

  9. 北京Uber优步司机奖励政策(4月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. KVM虚拟化的安装

    kvm介绍 一.KVM的历史 Kvm在2007年2月正式合并Linux2.6.20核心中,成为内核源代码的一部分.2008年9月4日,RedHat公司收购了Qumranet,开始在RHEL中用kvm取 ...