冒泡法排序C++实现
2016-03-11 14:38
651 查看
看一下代码:
#include <iostream>
using namespace std;
//function count the number of count variable
void printf(int* a, int count)
{
for (int i = 0; i< count; i++)
{
cout << a[i] <<" ";
}
cout << endl;
}
void BubbleSort(int *a, int count)
{
int i,j,k,temp;
for(i=0;i<count-1;i++)
{
k=i;
for(j=i+1; j<count; j++)
{
if(*(a+j) < *(a+k))k=j;
temp=*(a+k);
*(a+k)=*(a+i);
*(a+i)=temp;
}
cout<<"The"<<i<<"round:"<<endl;
printf(a,count);
}
}
int main()
{
int data[]={6, 5, 4, 3, 2, 1};//initialize data[]
BubbleSort(data, 6);
cout<<"The sort result:"<<endl;
printf(data, 6);
return 0;
}
最后运行结果:
网上找到网友的另外一种冒泡法排序,代码如下:
void BubbleSort(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] < pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
cout << "The "<< i <<" round:" << endl;
print(pData, count);
cout << "----------------------------" << endl;
}
}其采用倒序查询的方式排序,最后结果相同相同。
冒泡法冒泡排序
优点:比较简单,空间复杂度较低,是稳定的;
缺点:时间复杂度太高,效率不好。
#include <iostream>
using namespace std;
//function count the number of count variable
void printf(int* a, int count)
{
for (int i = 0; i< count; i++)
{
cout << a[i] <<" ";
}
cout << endl;
}
void BubbleSort(int *a, int count)
{
int i,j,k,temp;
for(i=0;i<count-1;i++)
{
k=i;
for(j=i+1; j<count; j++)
{
if(*(a+j) < *(a+k))k=j;
temp=*(a+k);
*(a+k)=*(a+i);
*(a+i)=temp;
}
cout<<"The"<<i<<"round:"<<endl;
printf(a,count);
}
}
int main()
{
int data[]={6, 5, 4, 3, 2, 1};//initialize data[]
BubbleSort(data, 6);
cout<<"The sort result:"<<endl;
printf(data, 6);
return 0;
}
最后运行结果:
网上找到网友的另外一种冒泡法排序,代码如下:
void BubbleSort(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] < pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
cout << "The "<< i <<" round:" << endl;
print(pData, count);
cout << "----------------------------" << endl;
}
}其采用倒序查询的方式排序,最后结果相同相同。
冒泡法冒泡排序
优点:比较简单,空间复杂度较低,是稳定的;
缺点:时间复杂度太高,效率不好。
相关文章推荐
- C++模板特化
- c++第1次实验-3
- 复杂链表的复制
- 九度-题目1433:FatMouse
- C++ 命名空间
- C++为什么不叫++C
- 《关于C++中下标运算符的应用》
- C语言中的string.h中的内存字符串处理函数
- 【C++】获得本机所有网卡的IP和MAC地址信息
- UE4中如何修改已经建好的C++类名
- C语言的fopen函数(文件操作/读写)
- C语言中static变量详解
- 【整理】经典内部排序算法总结和C/C++实现
- FILE不是C语言关键字
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 7.C语言之指针
- C++ Singleton设计模式
- C语言结构体(七)
- c++第1次实验-2
- c++第二次实验1-2