java插入排序兼编码注意

简介:

这个过程,也是一个自我提高的过程。

我开始自已写,while(in > 0 && a[in - 1] >= temp )这里总有问题。

后来仔细想想,也是,如果IN>0放在后面,那么&&之后可能会逻辑短路。且IN-1先执行,再判断IN,就会出现数组下标IN-1等于-1越界的情况。所以,IN>0必放前面。

第二,将&&更换成&行不行?也不行。因为&不会逻辑短路,就算IN>0不成立,它一样会执行IN-1的数组下标判断,一定会出错。

真的是一步一小心呀。在规则内,可以横行,但稍稍越出规则一步,都是不允许的。

复制代码
  public void insertionSort()
      {
          int out;
          int in;
          for(out = 1; out < nElems; out++){
              long temp = a[out];
              in = out;
              System.out.print(a[in] + " \tbefor sort :\t"+ in);
             while(in > 0 && a[in - 1] >= temp )
             {
                 a[in] = a[in -1];
                 in--;
             }
             System.out.println("\t---after sort : \t" + in);
             a[in] = temp;
            }
      }
复制代码


为了仔细看到对IN位置的查找,我加了两个输出,更能理解代码的执行逻辑过程。

目录
相关文章
|
3月前
|
存储 Java Android开发
IO流:java中解码和编码出现乱码说明及代码实现
IO流:java中解码和编码出现乱码说明及代码实现
|
6月前
|
存储 Java
使用Java进行Base64编码的示例
使用Java进行Base64编码的示例
68 1
|
5月前
|
Kubernetes 数据可视化 搜索推荐
学习Java 8 Stream,提升编码能力!
学习Java 8 Stream,提升编码能力!
|
14天前
|
Java API
编码的奇迹:Java 21引入有序集合,数据结构再进化
编码的奇迹:Java 21引入有序集合,数据结构再进化
16 0
|
14天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
1月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--插入排序
数据结构与算法(Java篇)笔记--插入排序
|
1月前
|
搜索推荐 Java
Java实现插入排序算法
Java实现插入排序算法
11 0
|
1月前
|
搜索推荐 Java
Java代码插入排序
Java代码插入排序
11 0
|
2月前
|
Java Maven
java获取文件编码,jsoup获取html纯文本
java获取文件编码,jsoup获取html纯文本
13 0
|
3月前
|
Java Go C++
Golang每日一练(leetDay0116) 路径交叉、回文对
Golang每日一练(leetDay0116) 路径交叉、回文对
30 0
Golang每日一练(leetDay0116) 路径交叉、回文对