C++学习之数据结构及算法——冒泡排序

来源:互联网 发布:js offsetright 编辑:程序博客网 时间:2024/04/27 12:06

这是我写的第一篇博客,由于最近比较迷茫,不知道干什么,就看起了数据结构跟算法,并对之进行了实现,自知很简单,拿不到纸面,但这是我写博客的开始,希望这个能对自己的学习有所帮助,同时能持之以恒。 下面是实现的冒泡排序的代码,不足之处望大家提出以便修正改进。同时还希望大家能告知更好的方法以便学习!谢谢!

 

//下降冒泡,排序后数字从小到大
void BubbleDown(int arr[],int nCount)
{
 int nTemp;
 for (int i=0;i<nCount;i++)
 {
  for (int j=nCount-1;j>i;j--)
  {
   if (arr[j]<=arr[j-1])
   {
    nTemp = arr[j-1];
    arr[j-1] = arr[j];
    arr[j] = nTemp;
   }
  }
 }
}

//上升冒泡,排序后数字从小到大
void BubbleUp(int arr[],int nCount)
{
 int nTemp;
 for (int i=nCount-1;i>=0;i--)
 {
  for(int j=0;j<i;j++)
  {
   if (arr[j+1]<=arr[j])
   {
    nTemp = arr[j+1];
    arr[j+1] = arr[j];
    arr[j] = nTemp;
   }
  }
 }
}

// 双向冒泡,排序后数字从小到大

void BubbleUpAndDown(int arr[],int nCount)
{
 int nLowTemp,nHightTemp;
 int iLow=0;
 int iHight=nCount-1;
 while(iLow<iHight)
 {
  for (int i=iHight;i>iLow;i--)
  {
   if (arr[i]<=arr[i-1])
   {
    nLowTemp = arr[i-1];
    arr[i-1] = arr[i];
    arr[i] = nLowTemp;
   }
  }
  for (int j=iLow;j<iHight;j++)
  {
   if (arr[j]>=arr[j+1])
   {
    nHightTemp = arr[j+1];
    arr[j+1] = arr[j];
    arr[j] = nHightTemp;
   }
  }
  iLow++;
  iHight--;
 }
}

原创粉丝点击