冒泡排序:
import java.awt.*;
public class Bubble extends Applet
{
Label pro=new Label("輸入整數:");
TextField input=new TextField(5);
Button b=new Button("排序");
//int[] DataArray=new int[10];
int[] DataArray=new int[10];
int DataInputed=0;
int[][] SortPro=new int[11][10];
public void init()
{
add(pro);
add(input);
add(b);
}
public void paint(Graphics g)
{
for(int i=0;i<SortPro.length;i++)
for(int j=0;j<SortPro.length;j++)
g.drawString(Integer.toString(SortPro[i][j]),10+30*j,40+20*i);
}
public boolean action(Event e,Object o)
{
if(e.target==input)
{
DataArray[DataInputed++]=Integer.parseInt(input.getText());
if(DataInputed<10)
{
pro.setText("已輸入"+DataInputed+"個數據,請繼續");
input.setText("");
}
else
{
pro.setText(" 已輸入十個數據,不能再輸入!");
input.hide();
}
}
if(e.target==b)
{
for(int i=0;i<DataArray.length;i++)
SortPro[0][i]=DataArray[i];
SortProcedure();
repaint();
}
return true;
}
void SortProcedure()
{
int i1,t,exchangeCnt=0;
for(int pass1=0;pass1<DataArray.length;pass1++)
{
for(i1=0;i1<DataArray.length-pass1-1;i1++)
{
if(DataArray[i1]>DataArray[i1+1])
{
t=DataArray[i1];
DataArray[i1]=DataArray[i1+1];
DataArray[i1+1]=t;
exchangeCnt++;
}
}
for(i1=0;i1<DataArray.length;i1++)
SortPro[pass1+1][i1]=DataArray[i1];
if(exchangeCnt==0)
return;
}
}
}
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<APPLET CODE="Bubble" WIDTH="330" HEIGHT="100">
</APPLET>
</BODY>
</HTML>
其他的排序類同
主要代碼如下
插入排序:
int temp;
for(int i=1; i〈data.length; i++)
{
for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--)
{
temp=date[j];
data[j]=data[j-1];
data[j-1]=temp;
}
}
}
選擇排序:
public static void xuanze(int[] data) {
int temp;
for (int i = 0; i 〈 data.length; i++) {
int lowIndex = i;
for (int j = data.length - 1; j 〉 i; j--) {
if (data[j] 〉 data[lowIndex]) {
lowIndex = j;
}
}
temp=data[i];
data[i]=data[lowIndex];
data[lowIndex]=temp;
}
}
shell排序:
public void sort(int[] data) {
for(int i=data.length/2; i〉2; i/=2){
for(int j=0; j〈i; j++){
insertSort(data,j,i);
}
}
insertSort(data,0,1);
}
private void insertSort(int[] data, int start, int inc) {
int temp;
for(int i=start+inc; i〈data.length; i+=inc){
for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){
temp=data[j];
data[j]=data[j-inc]
data[j-inc]=temp;
}
}
}