C++学习之--冒泡排序
来源:互联网 发布:怎么评价蒋介石知乎 编辑:程序博客网 时间:2024/06/06 20:37
//冒泡排序是一种最基本的排序算法,操作过程是:
比较相邻的两个元素,如果前面一个比后面一个大,那么就交换位置。
对每一组相邻元素都做同样的工作。
重复这个步骤。直至有序。
第一个循环是需要比较的趟数。
第二个是每趟需要比较的元素个数。
冒泡排序的时间复杂度是O(n^2).
他是稳定的排序算法。
//要求:从文件test.txt中读取元素,并且对元素排序后写入到文件sort.txt中
程序如下:
#include<iostream>
#include<vector>#include<fstream>
#include<stdlib.h>
using namespace std;
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void BubbleSort(vector<int>&data)
{
int count=data.size();
for(int i=0;i<count;i++) //只需要循环count-1次啊,因为前面count-1个都确定,最后一个肯定确定啊
{
for(int j=0;j<count-i-1;j++)
{
if (data[j]>data[j+1])
{
swap(&data[j],&data[j+1]);
}
}
}
}
int main()
{
vector<int>data;
ifstream in("test.txt");
if(!in)
{
cout<<"file open error."<<endl;
exit(EXIT_FAILURE);
}
int tmp;
while(!in.eof())
{
in>>tmp;
data.push_back(tmp);
}
in.close();
BubbleSort(data);
ofstream out("sort.txt");
if(!out)
{
cout<<"file open error."<<endl;
exit(EXIT_FAILURE);
}
for (int i =0 ; i < data.size() ; i++)
{
out<<data[i]<<" ";
}
out.close();
return 0;
}
0 0
- C语言学习之冒泡排序
- C语言之数组冒泡排序方法(学习之路)
- OC学习之道:C语言的冒泡排序与OC的冒泡排序之比较
- C语言学习笔记分享之数组(冒泡排序)
- 排序算法之冒泡排序(C/C++)
- c语言之冒泡排序
- C语言之冒泡排序
- 冒泡排序之C语言版
- C语言之冒泡排序
- c语言之冒泡排序
- C语言之桶排序,冒泡排序,快速排序,选择排序算法学习
- C++学习之--冒泡排序
- 算法学习之冒泡排序
- java学习之冒泡排序
- 学习算法之冒泡排序
- C--经典算法之排序---冒泡排序
- c之排序问题---冒泡排序
- C语言之冒泡排序、选择排序
- 错误 2 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Enum
- HTTP->WebRTC演进路径
- Java中8进制和16进制的表示方法
- 二叉树的相等比较
- C++学习之--冒泡排序
- 第六周项目一体验常成员函数
- Hudson+Maven+SVN 快速搭建持续集成环境
- BZOJ 3323: [Scoi2013]多项式的运算
- red hat linux 9无法进入图形界面
- TCP UDP recv recvfrom
- Java回调函数
- css常用样式汇总
- 【amazing cocos2d-x 3.0之四】新触摸机制的前奏——Lambda