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

 package com.dyi.wyb.sort;

 import java.awt.Color;
import java.awt.Graphics;
import java.util.Random; import javax.swing.*; public class InsertionSort extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* main method
*
* @param args
* []
* @author stagebo
*/
static int[] arr = getArray(1000);
static InsertionSort show;
public static void main(String[] args) {
show=new InsertionSort("插入排序");
insertionSort(arr);
} /**
* introduction:algorithms of insertionSort
*
* @param arr
* []
* @return void
*
*/
public static void insertionSort(int[] arr) {
for (int j = 1; j < arr.length; j++) {
int key = arr[j];
int i;
for (i = j - 1; i >= 0 && arr[i] > key; i--) {
arr[i + 1] = arr[i];
try{Thread.sleep(5);}catch(Exception e){}
show.repaint();
}
arr[i + 1] = key;
}
} /**
* function: print array
*
* @param arr
* @param str
*/
public static void printArray(int[] arr, String str) {
System.out.print(str + ":");
for (int i : arr) {
System.out.print(i + "--");
}
System.out.println();
} /**
* constructor,initial the panel
*/
public InsertionSort(String title) {
setTitle(title);
setLocation(20, 20);
setSize(1000, 600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public void paint(Graphics g) {
for (int i = 0; i < arr.length; i++) {
g.setColor(Color.BLACK);
g.drawLine(i, 600, i, 600-arr[i]);
g.setColor(Color.WHITE);
g.drawLine(i, 0,i, 600-arr[i]);
}
} /**
* return a random value array
*
* @param length
* @return array[length]
*/
public static int[] getArray(int length) {
int[] re = new int[length];
for (int i = 0; i < re.length; i++)
re[i] = i / 2;
for (int i = 0; i < re.length; i++) {
int index1 = new Random().nextInt(length);
for (int j = 0; j < 3; j++) {
int temp = re[i];
re[i] = re[index1];
re[index1] = temp;
}
}
return re;
}
}

插入排序以及显示面板代码

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

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

【开发者笔记】插入排序过程呈现之java内置GUI表示的更多相关文章

  1. 【子非鱼】插入排序过程呈现之java内置GUI表示

    先给代码,再给过程视频: package com.dyi.wyb.sort; import java.awt.Color; import java.awt.Graphics; import java. ...

  2. 【开发者笔记】冒泡排序过程呈现之java内置GUI表示

    自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...

  3. 【子非鱼】冒泡排序过程呈现之java内置GUI表示

    自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...

  4. 【开发者笔记】归并排序过程呈现之java内置GUI表示

    在网上看到一个视频将各种排序用视频表示出来,配上音乐,挺好玩的样子,就算是不会编程的人看到也会觉得很舒服,碰巧我也正在写归并算法,于是就用java的GUI实现一个. 归并排序的时间复杂度是T(n)=O ...

  5. 【子非鱼】归并排序过程呈现之java内置GUI表示

    在网上看到一个视频将各种排序用视频表示出来,配上音乐,挺好玩的样子,就算是不会编程的人看到也会觉得很舒服,碰巧我也正在写归并算法,于是就用java的GUI实现一个. 归并排序的时间复杂度是T(n)=O ...

  6. Java 性能分析工具 , 第 2 部分:Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

  7. 深入理解Java内置锁和显式锁

    synchronized and Reentrantlock 多线程编程中,当代码需要同步时我们会用到锁.Java为我们提供了内置锁(synchronized)和显式锁(ReentrantLock)两 ...

  8. 使用Java内置的Http Server构建Web应用

    一.概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器. 虽然Jav ...

  9. java内置线程池ThreadPoolExecutor源码学习记录

    背景 公司业务性能优化,使用java自带的Executors.newFixedThreadPool()方法生成线程池.但是其内部定义的LinkedBlockingQueue容量是Integer.MAX ...

随机推荐

  1. linux 链接的使用 创建和删除符号连接(软、硬链接)

    1 . 使用方式 :ln [option] source_file dist_file   (source_file是待建立链接文件的文件,dist_file是新创建的链接文件)            ...

  2. vector--C++ STL 学习

    vector对应的数据结构为数组,而且是动态数组,也就是说我们不必关心该数组事先定义的容量是多少,它的大小会动态增长.与数组类似的是,我们可以在末尾进行元素的添加和删除,也可以进行元素值的随机访问和修 ...

  3. windbg的使用

      1. set 1.1. 设置Symbol file path file->symbol file path, 如: D:\***\TestProject\pdb   1.2 设置source ...

  4. Desugar Scala(15) -- unapply和unapplySeq方法

    欢迎关注我的新博客地址:http://cuipengfei.me/ 实在想不到什么动词可以当做脱衣服来讲了,所以从现在开始这系列博文就叫做Desugar Scala了.除非哪天才思泉涌,又想到了新词: ...

  5. linux 测试工具

    最近在寻找linux的测试工具,试用了一些.记录如下. memtester 内存测试工具,通过对内存进行读写进行测试.可以对同一块空间进行多次的读写. 源码分析 http://www.cnblogs. ...

  6. 在mac下使用ppk文件ssh到远程主机

    You can ssh directly from the Terminal on Mac, but you need to use a .PEM key rather than the putty  ...

  7. 清除信号量队列导致zabbix自动关闭

    前几天在海外UCloud机器上部署了一套zabbix proxy和zabbix agentd,可是第二天一大早就收到邮件说zabbix_proxy挂掉了,上去查一下发现两台机器中的一台的proxy和a ...

  8. (转)c指针问题

    字符串常量问题: http://blog.csdn.net/zhongyili_sohu/article/details/8084188 1. 常量字符串 在代码里直接出现的”abcdef”这种字符串 ...

  9. Github+Jekyll —— 创建个人免费博客(五)jekyllproject公布到github上

    摘要: 本文中我将介绍一下怎样在github上搭建个人Blog(博客),也顺便让我们掌握一下github Pages功能,另外还涉及到Jekyll技术. ======================= ...

  10. 阿里云CentOS6.8安装MySQL5.6

    1.使用SSH Secure Shell工具连接阿里云服务器 2.使用SSH Secure File Transfer工具上传MySQL压缩包 3.解压MySQL压缩包到指定目录(需要在先/usr/l ...