冒泡

hugebug 2001-09-21 07:48:17
有哪位大哥小姐能给我一个冒泡排序的程序,好让我应付老板(婆)?
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wormholes 2001-09-22
  • 打赏
  • 举报
回复
好东西
happyer 2001-09-22
  • 打赏
  • 举报
回复
关注
wilddragon 2001-09-21
  • 打赏
  • 举报
回复
哈哈
wilddragon 2001-09-21
  • 打赏
  • 举报
回复
关注
wilddragon 2001-09-21
  • 打赏
  • 举报
回复
值得注意
Nepton 2001-09-21
  • 打赏
  • 举报
回复
#include <iostream>
#include <time.h>
#include <stdlib.h>
////////////////////////////////////////////////////
using namespace std;
///////////////////////////////////////////
void BubbleSort(int aArray[],int nSize); //冒泡
void InsertSort(int aArray[],int nSize); //插入
void QuickSort(int aArray[],int nSize); //快速
void SelectSort(int aArray[],int nSize); //选择
void ShellSort(int aArray[],int nSize); //希尔

////////////////////////////////////////////

//冒泡法
void BubbleSort(int aArray[],int nSize)
{
int i,j;
for(i=nSize;i>0;i--)
for(j=0;j<i;j++)
if(aArray[j]<aArray[j-1])
swap(aArray[j],aArray[j-1]);
return;
}


//插入法
void InsertSort(int aArray[],int nSize)
{
int i,j;
for(i=0;i<nSize;i++)
for(j=i;j>0;j--)
if(aArray[j-1]>aArray[j])
swap(aArray[j],aArray[j-1]);
return;
}


//快速排序
void QuickSort(int aArray[],int nSize)
{
int *pLeft=aArray;
int *pRight=aArray+nSize-1;
int nConsult=*pLeft;
bool bIsTurn=true;

if(nSize==1)
return;

while(pLeft<pRight)
{
switch(bIsTurn)
{
case true:
if(*pRight>=nConsult)
pRight--;
else
*pLeft++=*pRight,bIsTurn=!bIsTurn;
break;
case false:
if(*pLeft<=nConsult)
pLeft++;
else
*pRight--=*pLeft,bIsTurn=!bIsTurn;
break;
}
}
*pLeft=nConsult;

QuickSort(aArray,pLeft-aArray+1);
QuickSort(pLeft+1,aArray+nSize-1-pLeft+1-1);

return;
}


//选择排序
void SelectSort(int aArray[],int nSize)
{
int i,j;
for(i=0;i<nSize;i++)
for(j=i;j<nSize;j++)
if(aArray[i]>aArray[j])
swap(aArray[i],aArray[j]);
return;
}


//希尔排序
void ShellSort(int aArray[],int nSize)
{
int *pArray;
int nLength=nSize/2;
bool bExchange;
while(nLength!=0)
{
do
{
bExchange=false;
for(pArray=aArray;pArray-aArray+nLength<nSize;pArray++)
if( *pArray > *(pArray+nLength) ) //升序排序
{
bExchange=true;
swap(*pArray,*(pArray+nLength));
}
}while(bExchange==true);
nLength/=2;
}
return;
}

krerix 2001-09-21
  • 打赏
  • 举报
回复
不是吧,很多书上都有,自己copy

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧