冒泡算法编码

其基本思想是,将待排序的数据依次进行相邻的比较,如不符合顺序的要求,两个数立即交换。

经过一趟比较后,最大的元素就被排到了最后,依次进行,就完成了整个的排序的过程。

循环分为内外二层,每次内层循环取出一个最大或者最小的值。

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();
  }
 }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值