C-基础:冒泡排序

#include <fstream>

#include <iostream.h>

//---------------------------------------------------------------------------

main()
{
  ofstream ofile("d:\\write.txt");
  if(!ofile)
  return;

  ifstream ifile("d:\\read.txt");
  if(!ifile)
  return;

  char a[20];
  int i=0;

  while(!ifile.eof())
  {
    ifile>>a[i];
    if (a[i] == '\0')
    break;
    i++;
  }

  int tmp;

  int nfor1 =0;
  int nfor2 =0;

  for(int i =0;i<(int)strlen(a)-1;i++)            //strlen返回size_t是unsigned int类型,强制转换,保持一致。//减1,是因为n个数字,会比较n-1次。
  {
    for(int j=0;j<(int)strlen(a)-i-1;j++)
    {

      if(a[j]>a[j+1])
      {
        tmp = a[j];
        a[j] = a[j+1];
        a[j+1] = tmp;
      }
      nfor2++;
      if(j == (int)strlen(a)-i-2)
      {
        ShowMessage(nfor2); //内层循环次数
        nfor2=0;
      }

    }
    nfor1++;
  }

  ShowMessage(nfor1); //外层循环次数

  for(int j=0;j<(int)strlen(a);j++)
  {
    ofile<<a[j]<<endl;
  }
}

 

posted @ 2013-09-10 17:03  CPYER  阅读(194)  评论(0)    收藏  举报