【开发者笔记】插入排序过程呈现之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),和冒泡排序半斤八两。

黑夜给了我黑色的眼睛,我却用它寻找光明
目录
相关文章
|
8天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
1月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
1月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
1月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
20天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
10 0
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
28 1
|
2月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
29 1
|
搜索推荐 Java
希尔排序(简单易懂,图文并貌,插入排序)java代码实现
希尔排序(简单易懂,图文并貌,插入排序)java代码实现
154 0
希尔排序(简单易懂,图文并貌,插入排序)java代码实现
|
搜索推荐 算法 Java
插入排序(直接插入排序)java代码实现(注释详细 简单易懂)
插入排序(直接插入排序)java代码实现(注释详细 简单易懂)
135 0
|
Java 机器学习/深度学习 Shell