Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3496
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-30 21:28
个人简介

非计算机专业科班出身,即将从事软件开发的菜鸟,怀着改变世界的伟大梦想,踏上潜心学习的不归路。

文章分类
文章存档

2013年(1)

我的朋友
最近访客

分类: C/C++

2013-12-01 21:28:08

        看到这个题目,估计大多数人会觉得不屑一顾,这么简单的东西,有什么好写的。其实不然,冒泡排序在找个工作的笔试,面试中遇到的几率是非常大的(包括二叉树的层序遍历)。很多人觉得这个容易,三两下就写完了,很可能就落入了俗套。其实,我们完全可以稍作优化,来展示一下自己扎实的基本功及良好的编程习惯,在一定程度上增加了印象分。抛砖引玉,欢迎各种意见。

点击(此处)折叠或打开

  1. #include<iostream>
  2. using namespace std;
  3. void BubbleSort(int num[],int n)
  4. {
  5.     int flag;
  6.     for(int i=n-1;i>0;i--)
  7.     {
  8.         flag=0;             //设置标志位
  9.         for(int j=0;j<i;j++)
  10.         {
  11.             if(num[j]>num[j+1])
  12.             {
  13.                 num[j]=num[j]+num[j+1];         //在要求不使用额外存储空间时,可以用此算法,今年阿里笔试题之一
  14.                 num[j+1]=num[j]-num[j+1];
  15.                 num[j]=num[j]-num[j+1];
  16.                 flag=1;
  17.             }
  18.         }
  19.         if(flag==0) break;     //如果在一轮排序中,没有位置变动,则结束
  20.     }
  21. }
  22. void PrintArray(int num[],int n)
  23. {
  24.     for(int i=0;i<n;i++)
  25.         cout<<num[i]<<'    ';
  26.     cout<<endl;
  27. }
  28. int main()
  29. {
  30.     int number[10]={10,9,8,7,6,5,4,3,2,1};
  31.     PrintArray(number,10);
  32.     BubbleSort(number,10);
  33.     PrintArray(number,10);
  34.     return 0;
  35. }


阅读(185) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~