insertionSoft(插入排序) 2.1-1 And 重写insertionSoft 2.1-2

简介: insertionSoft(插入排序) 2.1-1 And 重写insertionSoft 2.1-2

input:{31,41,59,26,41,58}

output:{31,26,41,41,58,59}

伪代码:

InsertionSort(A, n) {
   for j = 2 to n {    
        key = A[j];    
        i = j - 1;     
        while (i > 0) and (A[i] > key) {          
            A[i+1] = A[i];         
            i = i - 1;    
         }          
        A[i+1] = key;
     }          
}

真代码:

public static int[] insertionSoftIntArr(int[] A){
        for (int i = 2; i < A.length; i++) {
            int key = A[i];
            int j = i -1;
            while (j > 0 && A[j] > key){
                A[j+1] = A[j];
                j = j -1;
            }
            A[j+1] = key;
        }
        return A;
    }

执行流程:

2.1-2 重写InsertSoft算法使之递减

伪代码:

InsertionSort(A, n) {
     for j = 1 to n {    
         key = A[j];    
         i = j - 1;     
         while (i >= 0) and (A[i] < key) {          
             A[i+1] = A[i];         
             i = i - 1;    
          }          
         A[i+1] = key;
      }          
}

真实代码:

public static int[] RewriteinsertionSoftIntArr(int[] A){
        for (int i = 1; i < A.length; i++) {
            int key = A[i];
            int j = i -1;
            while (j >= 0 && A[j] < key){
                A[j+1] = A[j];
                j = j -1;
            }
            A[j+1] = key;
        }
        return A;
    }

过程略

全部代码:

package 测试学习;
/**
 * 插入排序
 * 输入:{31,41,59,26,41,58}
 *
 */
public class insertionSoft {
    public static void main(String[] args) {
        int [] A = {31,41,59,26,41,58};
        A = RewriteinsertionSoftIntArr(A);
        for (int i = 0; i < A.length; i++) {
            System.out.print(A[i]+" ");
        }
    }
    public static int[] insertionSoftIntArr(int[] A){
        for (int i = 2; i < A.length; i++) {
            int key = A[i];
            int j = i -1;
            while (j > 0 && A[j] > key){
                A[j+1] = A[j];
                j = j -1;
            }
            A[j+1] = key;
        }
        return A;
    }
    /**
     * 重写
     * @param A
     * @return
     */
    public static int[] RewriteinsertionSoftIntArr(int[] A){
        for (int i = 1; i < A.length; i++) {
            int key = A[i];
            int j = i -1;
            while (j >= 0 && A[j] < key){
                A[j+1] = A[j];
                j = j -1;
            }
            A[j+1] = key;
        }
        return A;
    }
}


目录
相关文章
|
7月前
|
算法
【算法专题突破】双指针 - 复写零(2)
【算法专题突破】双指针 - 复写零(2)
17 0
|
6天前
|
搜索推荐 Java 索引
快速排序的新用法
快速排序的新用法
28 0
|
6天前
|
算法 C++
(C++)复写零--双指针法
(C++)复写零--双指针法
26 0
|
6月前
|
搜索推荐
深入探究常用排序算法:冒泡、插入、选择与快速排序
深入探究常用排序算法:冒泡、插入、选择与快速排序
|
10月前
|
算法
二分查找的三种方法
二分查找的三种方法
101 0
|
算法 搜索推荐
|
搜索推荐 算法
两种基础的数组排序方法。
两种基础的数组排序方法。
40 0