
add(sortSelectBtn); input.setText(\
input.addActionListener(this);
sortBubbleBtn.addActionListener(this); sortSelectBtn.addActionListener(this); }
public void paint(Graphics g)//打印排序全过程 {
for(int i=0;i for(int j=0;j
//二维数组第i行中的数据个数 { //try //{
g.drawString(SortPro[i][j],10+80*j,40+20*i); //}
//catch(NullPointerException npe) //{
// System.out.println(i+ \//} } }
public void actionPerformed(ActionEvent e) {
if(e.getSource() == input)//用户在input中输入并回车时 { //记录数据
DataArray[DataInputed] = input.getText();
OrigArray[DataInputed] = DataArray[DataInputed]; DataInputed++; if(DataInputed < 10) {
prompt.setText(\已输入\个字符串,请继续\input.setText(\准备输入下一个数据 }
else //已输入10个数据 {
prompt.setText(\已输入10个字符串,不能再输入了\input.setVisible(false); //隐藏其输入区域 } }
if(e.getSource() == sortBubbleBtn) //用户单击按钮,启动排序过程 {
for(int i=0;i
SortPro[0][i] = DataArray[i];
BubbleSortProcedure(); //调用冒泡排序方法 repaint();
for(int i=0;i if(e.getSource() == sortSelectBtn) { for(int i=0;i SortPro[0][i] = DataArray[i]; SelectSortProcedure(); //调用选择排序方法 repaint(); for(int i=0;i void BubbleSortProcedure() //冒泡排序方法 { int pass,i,exchangeCnt; String temp = \for(pass=0;pass { exchangeCnt=0;//记录本轮两两交换的次数 for(i=0;i { //每次扫描比较范围缩小一个 if(DataArray[i].compareToIgnoreCase(DataArray[i+1]) > 0) //一次两两比较交换过程 { temp = DataArray[i]; DataArray[i] = DataArray[i+1]; DataArray[i+1] = temp; exchangeCnt++; } } for(i=0;i //若一次也未交换,则说明已完全排好序,不必再循环 return; } } void SelectSortProcedure() //选择排序方法 { int pass,i,k; String temp = \for(pass=0;pass //选择多次,有序子列在增长 { for(i=pass,k=i;i //一次选择过程,无序子列在减少 if(DataArray[i].compareToIgnoreCase(DataArray[k]) < 0) //选择剩余未排序数据中的最小者 k = i; temp = DataArray[pass]; //排在剩余数据的最前面 DataArray[pass] = DataArray[k]; DataArray[k] = temp; for(i=0;i 知识点:冒泡排序和选择排序方法的使用。 2.难度:难 答案:源程序:Paixu.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class Paixu extends Applet implements ActionListener { final String SORT_METHOD_NAME[] = {\冒泡排序\桶排序\Label prompt = new Label(\请输入欲排序的字符串(最多10个):\TextField input = new TextField(5); Button sortBubbleBtn = new Button(SORT_METHOD_NAME[0]); Button sortSelectBtn = new Button(SORT_METHOD_NAME[1]); String[] OrigArray = new String[10]; //保存排序前顺序的数组 String[] DataArray = new String[10]; //保存待排序数据的数组 int DataInputed = 0; //已输入数据的统计 String[][] SortPro = new String[11][10]; //保存排序过程的二维数组 public void init() //初始化 { for(int i=0; i<10; i++) { DataArray[i] = \OrigArray[i] = \SortPro[10][i] = \for(int j=0; j<10; j++) SortPro[i][j] = \} add(prompt); add(input); add(sortBubbleBtn); //将提示、输入区域、按钮加入Applet add(sortSelectBtn); input.setText(\ input.addActionListener(this); sortBubbleBtn.addActionListener(this); sortSelectBtn.addActionListener(this); } public void paint(Graphics g)//打印排序全过程 { for(int i=0;i for(int j=0;j //二维数组第i行中的数据个数 { try { g.drawString(SortPro[i][j],10+80*j,40+20*i); }catch(NullPointerException npe) { System.out.println(i + \} } } public void actionPerformed(ActionEvent e) { if(e.getSource() == input)//用户在input中输入并回车 { //记录数据 DataArray[DataInputed] = input.getText(); OrigArray[DataInputed] = DataArray[DataInputed]; DataInputed++; if(DataInputed < 10) { prompt.setText(\已输入\个字符串,请继续\input.setText(\准备输入下一个数据 } else //已输入10个数据 { prompt.setText(\已输入10个字符串,不能再输入了\input.setVisible(false); //隐藏其输入区域 } } if(e.getSource() == sortBubbleBtn) //用户单击按钮,启动排序过程 { for(int i=0;i SortPro[0][i] = DataArray[i]; BubbleSortProcedure(); //调用冒泡排序方法 repaint(); for(int i=0;i if(e.getSource() == sortSelectBtn) { for(int i=0;i SortPro[0][i] = DataArray[i]; BucketSortProcedure(); //调用桶排序方法 repaint(); for(int i=0;i void BubbleSortProcedure() //冒泡排序方法 { int pass,i,exchangeCnt; String temp = \for(pass=0;pass { exchangeCnt=0;//记录本轮两两交换的次数 for(i=0;i { //每次扫描比较范围缩小一个 if(DataArray[i].compareToIgnoreCase(DataArray[i+1]) > 0) //一次两两比较交换过程 { temp = DataArray[i]; DataArray[i] = DataArray[i+1]; DataArray[i+1] = temp; exchangeCnt++; } } for(i=0;i //若一次也未交换,则说明已完全排好序,不必再循环 return; } } void BucketSortProcedure() //桶排序方法 { //暂时将字符范围限定在128个ASCII码内,最后一列保存这一行的数据个数 String bucket[][] = new String[128][DataInputed+1]; 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库第五章 判断题-数组(2)在线全文阅读。
相关推荐: