比这篇新的文章: 代码发芽网显示代码时做行号切换的javascript脚本
比这篇旧的文章: HTML + Django测试

冒泡排序

语言: C++, 标签: 无  2008/05/29发布 1年前更新 更新记录
作者: 翁翁, 点击1136次, 评论(0), 收藏者(0), , 打分:

背景
主题: 字体:
C++语言: 冒泡排序
01 // 冒泡排序
02 // 运行前在程序相同目录下手工生成测试文件:test.txt
03
04 #include <fstream>
05 #include <iostream>
06 #include <vector>
07
08 typedef std::vector<int> IntVector;
09 typedef IntVector::iterator IntIterator;
10
11 void ReadFile(IntVector& vec)
12 {
13     std::ifstream infile("test.txt");
14     while(!infile.eof())
15     {
16         int temp;
17         infile >> temp;
18         vec.push_back(temp);
19     }
20 }
21
22 void Output(std::ostream& oo, IntVector& vec)
23 {
24     for (IntIterator it = vec.begin();
25         it != vec.end();
26         ++it)
27         oo << *it << ' ';
28     oo << std::endl;
29 }
30
31 void swap(IntIterator& itFirst, IntIterator& itLast)
32 {
33     int temp = *itFirst;
34     *itFirst = *itLast;
35     *itLast = temp;
36 }
37
38 int main(int, char**)
39 {
40     IntVector vec;
41     ReadFile(vec);
42
43     std::cout << "Before sort:\n";
44     Output(std::cout, vec);
45     std::cout << "\nBubble sort:\n";
46
47     for (IntIterator itFirst = vec.begin();
48         itFirst != vec.end();
49         ++itFirst)
50     {
51         IntIterator itLast = vec.end()-1;
52         while (itLast != itFirst) {
53             if (*itLast < *(itLast-1))
54                 swap(itLast, itLast-1);
55             --itLast;
56         }
57         Output(std::cout, vec);
58     }
59
60     return 0;
61 }


所有评论,共0条:( 我也来说两句)


发表评论

注册登录后再发表评论