【开发者笔记】插入排序过程呈现之java内置GUI表示
先给代码,再给过程视频:
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表示的更多相关文章
- 【子非鱼】插入排序过程呈现之java内置GUI表示
先给代码,再给过程视频: package com.dyi.wyb.sort; import java.awt.Color; import java.awt.Graphics; import java. ...
- 【开发者笔记】冒泡排序过程呈现之java内置GUI表示
自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...
- 【子非鱼】冒泡排序过程呈现之java内置GUI表示
自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...
- 【开发者笔记】归并排序过程呈现之java内置GUI表示
在网上看到一个视频将各种排序用视频表示出来,配上音乐,挺好玩的样子,就算是不会编程的人看到也会觉得很舒服,碰巧我也正在写归并算法,于是就用java的GUI实现一个. 归并排序的时间复杂度是T(n)=O ...
- 【子非鱼】归并排序过程呈现之java内置GUI表示
在网上看到一个视频将各种排序用视频表示出来,配上音乐,挺好玩的样子,就算是不会编程的人看到也会觉得很舒服,碰巧我也正在写归并算法,于是就用java的GUI实现一个. 归并排序的时间复杂度是T(n)=O ...
- Java 性能分析工具 , 第 2 部分:Java 内置监控工具
引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...
- 深入理解Java内置锁和显式锁
synchronized and Reentrantlock 多线程编程中,当代码需要同步时我们会用到锁.Java为我们提供了内置锁(synchronized)和显式锁(ReentrantLock)两 ...
- 使用Java内置的Http Server构建Web应用
一.概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器. 虽然Jav ...
- java内置线程池ThreadPoolExecutor源码学习记录
背景 公司业务性能优化,使用java自带的Executors.newFixedThreadPool()方法生成线程池.但是其内部定义的LinkedBlockingQueue容量是Integer.MAX ...
随机推荐
- 在linux 列出 超级用户 普通用户和 系统用户
#!/bin/bash echo Please select which list you want to print echo "1. admin (enter 1)" echo ...
- [android] AndroidManifest.xml - 【 manifest -> Application -> activity 】
<activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetai ...
- 使用JavaScript 和 CSS 实现图像缩放和剪裁(转)
英文原文:Scale and Crop an Image using Javascript and CSS 在页面上需要裁减和缩放一张图片是一个常见问题.缩放图片比较简单的方法是使用image的hig ...
- adb server is out of date.killing的解决办法
当把手机连接到电脑端口运行adb程序调试时,出现了下面这样的情况: 分析:出错的原因是adb的端口被其他程序的进程占领了,所以要做的就是找到并kill该进程. 工具/原料 cmd.exe. ...
- 详谈JavaScript 匿名函数及闭包
1.匿名函数函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数:就是没有函数名的函数. 1.1 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式 第一种:这 ...
- shell 中各种符号的含义
http://yesjavame.iteye.com/blog/1062405 http://blog.csdn.net/taiyang1987912/article/details/39551385
- php 将一个字符串分割为组成它的字符
问: php里如何将一个字符串分割为组成它的字符? 比如hello -> [h, e, l, l, o] 以下有三种方法: 这是需要被分割的字符串: $str = 'Hello小样'; ...
- 学习《深入理解C#》—— 可空类型、可选参数和默认值 (第一章1.3)
目录 C#可空类型 C# 可选参数和默认值 C# 可空类型 在日常生活中,相信大家都离不开手机,低头族啊!哈哈... 假如手机厂商生产了一款新手机,暂时还未定价,在C#1中我们该怎么做呢? 常见的解决 ...
- Android "Please ensure that adb is correctly located at" 错误
转自:http://blog.csdn.net/hyx1990/article/details/12681207 遇到问题描述: 运行Android程序控制台输出 [2013-10-13 16:45: ...
- Linux命令之乐--telnet
监测端口是否通畅