zoukankan      html  css  js  c++  java
  • 【开发者笔记】插入排序过程呈现之java内置GUI表示

    先给代码,再给过程视频:

      1 package com.dyi.wyb.sort;
      2 
      3 import java.awt.Color;
      4 import java.awt.Graphics;
      5 import java.util.Random;
      6 
      7 import javax.swing.*;
      8 
      9 public class InsertionSort extends JFrame {
     10     /**
     11      * 
     12      */
     13     private static final long serialVersionUID = 1L;
     14     /**
     15      * main method
     16      * 
     17      * @param args
     18      *            []
     19      * @author stagebo
     20      */
     21     static int[] arr = getArray(1000);
     22     static InsertionSort show;
     23     public static void main(String[] args) {
     24         show=new InsertionSort("插入排序");
     25         insertionSort(arr);
     26     }
     27 
     28     /**
     29      * introduction:algorithms of insertionSort
     30      * 
     31      * @param arr
     32      *            []
     33      * @return void
     34      * 
     35      */
     36     public static void insertionSort(int[] arr) {
     37         for (int j = 1; j < arr.length; j++) {
     38             int key = arr[j];
     39             int i;
     40             for (i = j - 1; i >= 0 && arr[i] > key; i--) {
     41                 arr[i + 1] = arr[i];
     42                 try{Thread.sleep(5);}catch(Exception e){}
     43                 show.repaint();
     44             }
     45             arr[i + 1] = key;
     46         }
     47     }
     48 
     49     /**
     50      * function: print array
     51      * 
     52      * @param arr
     53      * @param str
     54      */
     55     public static void printArray(int[] arr, String str) {
     56         System.out.print(str + ":");
     57         for (int i : arr) {
     58             System.out.print(i + "--");
     59         }
     60         System.out.println();
     61     }
     62 
     63     /**
     64      * constructor,initial the panel
     65      */
     66     public InsertionSort(String title) {
     67         setTitle(title);
     68         setLocation(20, 20);
     69         setSize(1000, 600);
     70         setVisible(true);
     71         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     72     }
     73 
     74     public void paint(Graphics g) {
     75         for (int i = 0; i < arr.length; i++) {
     76             g.setColor(Color.BLACK);
     77             g.drawLine(i, 600, i, 600-arr[i]);
     78             g.setColor(Color.WHITE);
     79             g.drawLine(i, 0,i, 600-arr[i]);
     80         }
     81     }
     82 
     83     /**
     84      * return a random value array
     85      * 
     86      * @param length
     87      * @return array[length]
     88      */
     89     public static int[] getArray(int length) {
     90         int[] re = new int[length];
     91         for (int i = 0; i < re.length; i++)
     92             re[i] = i / 2;
     93         for (int i = 0; i < re.length; i++) {
     94             int index1 = new Random().nextInt(length);
     95             for (int j = 0; j < 3; j++) {
     96                 int temp = re[i];
     97                 re[i] = re[index1];
     98                 re[index1] = temp;
     99             }
    100         }
    101         return re;
    102     }
    103 }
    插入排序以及显示面板代码

    插图,插入排序过程显示视频连接

    插入排序的时间复杂度T(n)=O(n2),和冒泡排序半斤八两。

    黑夜给了我黑色的眼睛,我却用它寻找光明
  • 相关阅读:
    裸二分图匹配poj1469
    洛谷——P2038 无线网络发射器选址
    洛谷—— P1041 传染病控制
    洛谷—— P1784 数独
    Vijos——T 1092 全排列
    Vijos—— T 1359 Superprime
    高并发解决方案--负载均衡
    request 发送多层字典
    June 11th 2017 Week 24th Sunday
    June 10th 2017 Week 23rd Saturday
  • 原文地址:https://www.cnblogs.com/wyongbo/p/insertionSort.html
Copyright © 2011-2022 走看看