⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 somesort.java

📁 许多的排序算法
💻 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 + -