其基本思想是,将待排序的数据依次进行相邻的比较,如不符合顺序的要求,两个数立即交换。
经过一趟比较后,最大的元素就被排到了最后,依次进行,就完成了整个的排序的过程。
循环分为内外二层,每次内层循环取出一个最大或者最小的值。
import java.io.*;
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args)
{
int a[]=new int[20];
File fin=new File(“423_in2.dat”);
File fout=new File(“423_out2.dat”);
String score=””;
String s[]=new String[20];
int length=(int)fin.length();
char[] b=new char[length];
try
int ch
FileInputStream filein=new FileInputStream(fin);
FileWriter fileOut=new FileWriter(fout);
int k=0;
while((ch = filein.read())!=-1 ){
b[k]=(char)ch;
k++;
}
score=new String(b);
s=score.split(“
\\D
“);
k=0;
for(int i=0;i<20;i++)
{
a[i]=Integer.parseInt(s[k]);
k++;
}
fileOut.write(“排序前的数组是:”);
for(int i=0;i<20;i++){
fileOut.write(s[i]+” “);
}
fileOut.write(“\n”+”排序后的数组是:”);
for(int i=0;i<20;i++)
{
for(int j=0,temp=0;j<20-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}}
for(int i=0;i<20;i++)
{
fileOut.write(((Integer)a[i]).toString()+” “);
}
fileOut.flush();
fileOut.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}}