Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86510
  • 博文数量: 53
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:01
文章分类

全部博文(53)

文章存档

2008年(53)

我的朋友

分类: C/C++

2008-05-31 09:42:26

1.冒泡法:
这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:
#include

void BubbleSort(int* pData,int Count)
{
  int iTemp;
  for(int i=1;i  {
    for(int j=Count-1;j>=i;j--)
    {
      if(pData[j]      {
        iTemp = pData[j-1];
        pData[j-1] = pData[j];
        pData[j] = iTemp;
      }
    }
  }
}
2.交换法:
交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。
#include
void ExchangeSort(int* pData,int Count)
{
  int iTemp;
  for(int i=0;i  {
    for(int j=i+1;j    {
      if(pData[j]      {
        iTemp = pData[i];
        pData[i] = pData[j];
        pData[j] = iTemp;
      }
    }
  }
}

3.选择法:
现在我们终于可以看到一点希望:选择法,这种方法提高了一点性能(某些情况下)
这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从省下的部分中
选择最小的与第二个交换,这样往复下去。
#include
void SelectSort(int* pData,int Count)
{
  int iTemp;
  int iPos;
  for(int i=0;i  {
    iTemp = pData[i];
    iPos = i;
    for(int j=i+1;j    {
      if(pData[j]      {
        iTemp = pData[j];
        iPos = j;
      }
    }
    pData[iPos] = pData[i];
    pData[i] = iTemp;
  }
}

阅读(518) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~