【开发者笔记】插入排序过程呈现之java内置GUI表示

简介: 先给代码,再给过程视频: 1 package com.dyi.wyb.sort; 2 3 import java.awt.Color; 4 import java.awt.

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

  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),和冒泡排序半斤八两。

黑夜给了我黑色的眼睛,我却用它寻找光明
目录
相关文章
|
14天前
|
Java
Java基础—笔记—static篇
`static`关键字用于声明静态变量和方法,在类加载时初始化,只有一份共享内存。静态变量可通过类名或对象访问,但推荐使用类名。静态方法无`this`,不能访问实例成员,常用于工具类。静态代码块在类加载时执行一次,用于初始化静态成员。
10 0
|
14天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
16天前
|
Java C# 开发者
【干货】Java开发者快速上手.NET指南
【干货】Java开发者快速上手.NET指南
|
24天前
|
存储 Java 关系型数据库
个人成绩信息管理系统【GUI/Swing+MySQL】(Java课设)
个人成绩信息管理系统【GUI/Swing+MySQL】(Java课设)
20 0
|
24天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
25 1
|
24天前
|
存储 Java 关系型数据库
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
17 0
|
24天前
|
存储 Java 关系型数据库
冬奥会传统文化管理系统【GUI/Swing+MySQL】(Java课设)
冬奥会传统文化管理系统【GUI/Swing+MySQL】(Java课设)
8 0
|
24天前
|
存储 Java 关系型数据库
学生宿舍管理系统【GUI/Swing+MySQL】(Java课设)
学生宿舍管理系统【GUI/Swing+MySQL】(Java课设)
19 0
|
24天前
|
存储 Java 关系型数据库
学生管理系统【GUI/Swing+MySQL】(Java课设)
学生管理系统【GUI/Swing+MySQL】(Java课设)
18 0
|
24天前
|
存储 Java 关系型数据库
洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)
洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)
13 0