资源简介
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图状数据结构转换为树状数据结构
- java算法大全含源码包
- 山东大学数据结构课程设计
- [数据结构Java版第4版][叶核亚][习题解
- 全世界最经典的数据结构教材,Horo
- 数据结构与算法分析Java语言描述-英文
- 数据结构与算法:C#语言描述(中,英
- 数据结构—Java语言描述朱战立版课件
- 数据结构与算法分析_java语言描述_M
- 数据结构课程设计 哈弗曼编码译码器
- 数据结构与算法分析JAVA英文第三版
- 数据结构与算法分析(Java版).pdf
- 图解数据结构使用Java.zip
- 数据结构与算法(java语言)邓俊辉
- 数据结构与算法Java描述 习题答案
- 免费高清 java数据结构和算法第二版编
- Java Design Demo -简单的队列
- 数据结构与算法分析Java描述习题答案
- 数据结构与算法java中文版
- 东北大学数据结构与算法课程设计实
- 2018-2019学年东北大学数据结构实验报
- 武汉大学 数据结构课件
- 算法与数据结构之LeetCode题目详解PD
- 学生成绩管理系统网站数据结构课程
- 基于Java FX实现的可视化排序算法
- 数据结构java版 刘小晶
- 数据结构与算法Java 描述 - 邓俊辉 -
- 数据结构与算法分析——java语言描述
- JAVA语言程序设计与数据结构答案
- 数据结构java版练习试卷及答案
评论
共有 条评论