资源简介
Java数据结构的作业,写出直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序的算法,并用动态界面展示出来。
代码片段和文件信息
package DynamicSort;
import javax.swing.JPanel;
import java.awt.*;
//JPanel容器
public class Animation extends JPanel {
private int[] count;
private int line1;
private int line2;
private static final int length = 50; // 排序数据的个数
private int maxCount;
private int begin;
private int end;
// 设置排序数据、两根条条;演示动画
public void showAnimation(int[] count int line1 int line2) {
this.line1 = line1;
this.line2 = line2;
this.count = count;
repaint();
}
// 设置数据、一根条条;演示动画
public void showAnimation(int[] count int line1) {
this.line1 = line1;
this.count = count;
this.begin = 0;
this.end = count.length;
repaint();
}
// 设置数据;演示动画
public void showAnimation(int count[]) {
this.count = count;
this.begin = 0;
this.end = count.length;
repaint();
}
public Animation() {
setCount();
setMaxCount(count);
showAnimation(count);
}
public int[] getCount() {
return count;
}
public static int getLength() {
return length;
}
// 设置随机数
public void setCount() {
count = new int[length];
boolean flag = false;
int temp;
int line1 = 0;
while (line1 < length) {
temp = (int) (Math.random() * length) + 1;
// 检查是不是同一个元素
for (int j = 0; j < line1; j++) {
if (temp == count[j]) {
flag = true;
break;
} else {
flag = false;
}
}
if (!flag)
count[line1++] = temp;
}
}
// 设置动画的参数
protected void paintComponent(Graphics g) {
if (count == null) {
return;
}
super.paintComponent(g);
// 面板大小及栏位视情况变化
int width = getWidth();
int height = getHeight();
int interval = (width - 50) / length; // 小条条的间隔
// 设置第一根条条距离边栏的距离
int d = 25;
for (int i = 0; i < begin - 1; i++) {
d += interval;
}
// 设置小条条的外观
for (int i = begin; i < end; i++) {
int barHeight = (int) (((double) count[i] / (double) maxCount) * (height - 55));
// 第一根小条条
if (i == line1) {
g.setColor(Color.DARK_GRAY );
g.fillRect(d height - barHeight interval barHeight);
d += interval;
line1 = -1;
}
// 第二根小条条
if (i == line2) {
g.setColor(Color.DARK_GRAY );
g.fillRect(d height - barHeight interval barHeight);
d += interval;
line2 = -1;
}
// 已经归位的条条
g.setColor(Color.LIGHT_GRAY);
g.fillRect(d height - barHeight interval barHeight);
// 给下一个条条挪空
d += interval;
}
}
private void setMaxCount(int count[]) {
int maxCount = 0;
for (int i = 0; i < length; i++) {
if (maxCount < count[i])
maxCount = count[i];
}
this.maxCount = maxCount;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-02 22:19 动态演示排序算法\DynamicSort\
文件 2797 2018-06-08 19:05 动态演示排序算法\DynamicSort\Animation.java
文件 8007 2018-01-02 19:55 动态演示排序算法\DynamicSort\Sorting.java
文件 2317 2018-06-08 19:05 动态演示排序算法\DynamicSort\SortingDisplay.java
目录 0 2018-06-08 19:04 动态演示排序算法\
相关资源
- java 实现各种排序算法动态比较
- R树的Java实现 可直接在eclipse下运行
- Java版数据结构与算法视频教程(44集
- 数据结构Java联系人通讯率
- Java语言程序设计与数据结构基础篇第
- JAVA数据结构复杂表达式求值
- Java版数据结构与算法视频教程(20集
- java数据结构视频教程共20集
- java数据结构校园导游咨询系统
- 全国交通咨询系统数据结构课设 图的
- 基于java数据结构链表写的猴子选大王
- 数据结构(JAVA)\\[数据结构Java版第
- json数据结构比对工具
- Java数据结构算法面试题
- java数据结构之家族亲属关系查询系统
- C#、C++、HTML5、JAVA、Python、数据结构与
- java语言实现的二叉树的各种操作(包
- Java数据结构和算法中文第二版——书
- 排序算法 动画演示系统
- java 排序算法可视化 演示程序
- 数据结构Java版教学计划编排
- 重庆理工大学软件工程、计算机学院
- Java语言程序设计与数据结构基础篇第
- 数据结构Java约瑟夫环
- 数据结构课程设计报告java+哈夫曼树
- java+GUI界面各种排序算法性能比较
- java 排序算法可视化
- 栈的实现,数据结构
- 数据结构 各种排序算法 java图形界面
- 数据结构 图(邻接矩阵) java图形界
评论
共有 条评论