• 冒泡排序、选择排序和插入排序实例


     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         int A[] = {9,1,6,2,8,4,5,2,0};
     5         insertSorted(A);
     6         for (int i = 0; i < A.length; i++) {
     7             System.out.print(A[i] + " ");
     8         }
     9         System.out.println();
    10     }
    11 
    12     /**
    13      *  不变形
    14      * @param A
    15      */
    16     private static void insertSorted(int A[]) {
    17         for (int i = 1; i < A.length; i ++) {
    18             int data = A[i];
    19             int j = i - 1;
    20             while (j >= 0 && A[j] > data) {
    21                 A[j + 1] = A[j];
    22                 j --;
    23             }
    24             A[j + 1] = data;
    25         }
    26     }
    27 
    28     /**
    29      * 交换O(n),比较O(n^2),不变形
    30      * @param A
    31      */
    32     private static void swapSorted(int A[]) {
    33         for (int i = 0; i < A.length - 1; i++) {
    34             int min = i;
    35             for (int j = i + 1; j < A.length; j++) {
    36                 if (A[min] > A[j]) {
    37                     min = j;
    38                 }
    39             }
    40             if (min != i) {
    41                 swap(A, i, min);
    42             }
    43         }
    44     }
    45 
    46     /**
    47      * 交换O(n^2),比较O(n^2),不变形
    48      * @param A
    49      */
    50     private static void bubbleSorted(int A[]) {
    51         boolean flag = true;
    52         for (int i = 0; i < A.length - 1 && flag; i++) {
    53             flag = false;
    54             for (int j = 0; j < A.length - i - 1; j++) {
    55                 if (A[j] > A[j + 1]) {
    56                     swap(A, j, j + 1);
    57                     flag = true;
    58                 }
    59             }
    60         }
    61     }
    62     private static void swap(int A[], int i, int j) {
    63         int temp = A[i];
    64         A[i] = A[j];
    65         A[j] = temp;
    66     }
    67 }

  • 相关阅读:
    增删改查(Statement接口、PreparedStatement接口、DBUtils(QueryRunner类))
    JDBC(获取数据库连接、自定义JDBC工具类)
    Mysql(视图)
    mysql:dml(元组的插入、删除、修改)
    C++ 指针和引用
    C++ 内存管理
    C++ new/malloc、delete/free
    C++ 内存对齐
    图形渲染原理
    C++获取单链表的倒数第k个节点
  • 原文地址:https://www.cnblogs.com/xinlichai0813/p/8417400.html
Copyright © 2020-2023  润新知