📄 somesort.java
字号:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class SomeSort extends Applet implements ActionListener //定义主类
{
Label prompt = new Label("请输入欲排序的整数数据(最多10个):"); //定义提示窗
TextField input = new TextField(10); //定义输入窗口
Button bubblesortbtn = new Button("冒泡排序");
Button selectsortbtn = new Button("选择排序");
Button insertsortbtn = new Button("插入排序"); //定义启动排序按钮
int[] DataArray = new int[10]; //保存需要排序的数据的数组
int DataInputed = 0; //纪录已输入的数据的个数
int[][] SortPro = new int[11][10]; //保存排序的过程的数组
public void init() //窗口的初始化
{
add(prompt);
add(input);
add(bubblesortbtn);
add(selectsortbtn);
add(insertsortbtn);
input.addActionListener(this);
bubblesortbtn.addActionListener(this);
selectsortbtn.addActionListener(this);
insertsortbtn.addActionListener(this);
}
/*public abstract void drawString(String str,int x,int y)
使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。
最左侧字符的基线位于此图形上下文坐标系统的 (x, y) 位置处。*/
public void paint(Graphics g) //打印排序的过程
{
for(int i = 0; i < SortPro.length; i++) //二维数组的行数
{
for(int j = 0; j < SortPro[i].length; j++) //二位数组第i行的数据个数
{
g.drawString(Integer.toString(SortPro[i][j]),10+60*j,50+30*i);
}
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == input) //用户在‘input’框输入
{
DataArray[DataInputed++] = Integer.parseInt(input.getText());
if(DataInputed < 10)
{
prompt.setText("已输入" + DataInputed + "个数据,请继续");
input.setText("");
}
else
{
prompt.setText("已输入10个数据,不能再输入");
input.setVisible(false);
}
}
//选择冒泡排序
if(e.getSource() == bubblesortbtn)
{
for(int i = 0; i < DataArray.length; i++)
{
SortPro[0][i] = DataArray[i];
}
BubbleSort();
repaint();
}
//选择选择排序
if(e.getSource() == selectsortbtn)
{
for( int i = 0; i < DataArray.length; i++)
{
SortPro[0][i] = DataArray[i];
}
SelectSort();
repaint();
}
//选择插入排序
if(e.getSource() == insertsortbtn)
{
for( int i = 0; i < DataArray.length; i++)
{
SortPro[0][i] = DataArray[i];
}
InsertSort();
repaint();
}
}
//冒泡排序的过程
void BubbleSort()
{
int pass,i,temp,exchangeCnt;
for(pass = 0; pass < DataArray.length; pass++)
{
exchangeCnt = 0;
for(i = 0; i < DataArray.length - pass - 1; i++)
{
if(DataArray[i] > DataArray[i + 1])
{
temp = DataArray[i];
DataArray[i] = DataArray[i + 1];
DataArray[i + 1] = temp;
exchangeCnt++;
}
}
for(i = 0; i < DataArray.length; i++)
SortPro[pass + 1][i] = DataArray[i];
if(exchangeCnt == 0)
return;
}
}
//选择排序的过程
void SelectSort()
{
int pass,i,temp,k;
for(pass = 0; pass < DataArray.length - 1; pass++)
{
for(i = pass,k = i; i < DataArray.length; i++)
{
if(DataArray[i] < DataArray[k])
k = i;
}
temp = DataArray[pass];
DataArray[pass] = DataArray[k];
DataArray[k] = temp;
for(i = 0; i < DataArray.length; i++)
{
SortPro[pass + 1][i] = DataArray[i];
}
}
}
//插入排序的过程
void InsertSort()
{
int pass,i,temp;
for(pass = 1; pass < DataArray.length; pass++)
{
temp = DataArray[pass];
for(i = pass - 1; i >= 0; i--)
{
if(DataArray[i] <= temp)
break;
else
DataArray[i + 1] = DataArray[i];
}
DataArray[i + 1] = temp;
for(i = 0; i < DataArray.length; i++)
{
SortPro[pass][i] = DataArray[i];
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -