注:题目来源于微信公众号“算法爱好者”,喜欢算法的您值得关注!

问题描述:

现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换

多少次?例如,1,2,3,5,4,我们只需要交换一次,即将5和4交换即可。

输入描述:

第一行输入一个正整数n(n≤1000),表示数字序列的元素个数,占一行;接下来一行输入从1到n的n个整数排序,中间用空格隔

输出描述:

输出序列升序排列需要的最少交换次数

输入例子:

4
4 3 2 1

输出例子:

6

--------------------------------------------------------------------解题分界线-----------------------------------------------------------------------

这个题一看显然就想到了冒泡排序算法,每第i趟排序后,都会从数组内前n-i个元素中选出最大者,放至靠后的第n-i个位置上。

由于此不变性,我们在每一次循环时,不必遍历整个数组,而是访问前n-i个数组元素就可以。这样虽然减少了程序的执行次数,

但是并没有降低该算法时间复杂度,O(n^2)复杂度的程序在解决数据量大的问题时,并不能算有效的算法。这里只是给出了自

己的思考,你对这个问题有何看法呢,或者对这道面试题是否有其他有效的算法?欢迎在评论区留言。下面附上个人的解题源

码,和调试结果:

#include "stdafx.h"
#include<iostream>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{int num;//定义长度cin>>num;int *arr=new int(num);//定义一维数组用于存放待排序的数int count=0;//定义交换次数for(int k=0;k<num;k++)cin>>arr[k];//交换算法bool flag=false;//是否升序的标志位int j=0;//控制循环次数int temp;//存放临时变量,用于交换while(!flag){flag=true;for(int i=1;i<num-j;i++){if(arr[i]<arr[i-1])//交换并且修改flag,count加1{temp=arr[i];arr[i]=arr[i-1];arr[i-1]=temp;count++;//交换次数加1flag=false;}}j++;}cout<<count;delete [] arr;return 0;
}

上面这段程序运行后基本问题不大,但是会弹出一个不太理解的报错框,如下:

点击“继续”就可以了,我觉得这应该是数组的内存分配问题。暂且把它当做一个遗留问题,对系统内部的程序运行机制还不是特别

清楚,待日后解决(求大神赐教啊<0 _0>》)。

名企面试题个人总结——蘑菇街2017校园招聘(特殊交换)相关推荐

  1. 蘑菇街2017校园招聘笔试题

    GO ON 1.下面的哪个选项是自底向上分析方法() 自底向上的分析技术 有: ( 1 )简单优先分析法 ( 2 )算符优先分析法 ( 3 )优先函数 ( 4 ) LR 分析法 自底向上分析法(bot ...

  2. 广州图普网络科技2017校园招聘简章

    一.关于图普 图普科技是一家站在人工智能前沿的创新科技公司,专注于图像识别整体解决方案,为企业提供图像内容审核.图像内容分析.以图搜图等技术服务.凭借深厚的技术实力与专业的服务,图普科技与迅雷.秒拍. ...

  3. 【算法】创新工场涂鸦移动2017校园招聘测试题-A卷-软件工程师

    今天做了创新工场涂鸦移动2017校园招聘测试题-A卷-软件工程师的题目,我也不知道这算不算是泄题,再说也不见得我写的算法就是对的.贴出来,希望大家相互学习,相互进步,如有违反XX,不胜荣幸. 链表 1 ...

  4. 华为面试题库c语言,华为校园招聘c语言面试题集.doc

    华为校园招聘c语言面试题集.doc 华为C语言面试题集C语言面试题华为C语言面试题深圳华为面试C语言面试题1.局部变量能否和全局变量重名答能,局部会屏蔽全局.要用全局变量,需要使用"&quo ...

  5. 京东2017校园招聘数据与算法方向笔试题

    昨天做了一下京东的在线笔试.京东这次笔试题分为三个部分,第一部分是选择题30道,第二部分是2道编程题,第三部分是5道实用性更强的选择题.这里仅贴出题目,不提供答案. 一.选择题 1.设循环队列的容量为 ...

  6. 网易2017校园招聘数据挖掘笔试题

    1.藏宝图  题目描述  牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串s和t,根据古老的传说,牛牛需要每次都回答t是否是s的子序列.注意, ...

  7. 爱奇艺2017校园招聘笔试题

    成长值计算 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 爱奇艺累计有2000万会员,为了提高会员权 ...

  8. 网易2017校园招聘笔试题 优雅的点

    小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方.小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他. 例如:半径的平方如果为25 优雅的 ...

  9. 网易2017校园招聘笔试题 跳石板

    小易来到了一条石板路前,每块石板上从1挨着编号为:1.2.3--. 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X ...

  10. 去哪儿2017校园招聘笔试题

    import java.util.Scanner;/*** filename extension* 时间限制:C/C++语言 1000MS:其他语言 3000MS* 内存限制:C/C++语言 6553 ...

最新文章

  1. WF4.0实战(一):文件审批流程
  2. 【Vegas原创】Mysql绿色版安装方法
  3. CSharp中的数组和ArrayList及List
  4. public protect private继承
  5. 【ARTS】01_12_左耳听风-20190128~20190203
  6. 消息称苹果正探索更大尺寸iPad 屏幕分别为14英寸、16英寸
  7. ●洛谷P2606 [ZJOI2010]排列计数
  8. 爬虫应对银行安全控件
  9. Ubuntu18.04安装CAJViewer
  10. 我的移植经验之谈,简单的Rom移植教程——附移植JoyOS实例
  11. java 字符串的字节数_在Java中怎么计算字符编码和字符串所占字节数 .
  12. 计算机图形学坐标系的作用,坐标系的概念和坐标系之间的变换
  13. 大屏布局css,前端大屏项目的屏幕适配方案
  14. windows 控制台提示:请求的操作需要提升
  15. ★另人无比怀念的90年代动画片★ ‖最终整理篇‖
  16. vue-quill-editor编辑器踩坑
  17. poi tl 判断空值_使用poi-tl操作word模板
  18. Android 高德地图计算 Circle 计算上下左右四个点经纬度,Circle和Polygon是否全部包含,计算地图中点到线的最短距离
  19. 更聪明的免费图片素材搜素引擎 Everypixel 用 AI 排除俗气照片
  20. nnDetection复现Luna16 附模型

热门文章

  1. 2022最新MySQL面试题-有详细完整的答案解析
  2. download.php是什么文件,qmdownload是什么文件?
  3. linux将两个目录做软连接,centos软连接创建
  4. openstack 单节点 ubuntu 12.04 server 安装步骤 转自陈沙克老师博客
  5. 使用w查看系统负载 vmstat命令 top命令 sar命令 nload命令
  6. “NoSuchBeanDefinitionException: No qualifying bean of type”问题解决
  7. python图标变成了白色_桌面图标上有个白色文件图标怎么去掉?解决桌面图标白色方块挡住...
  8. Win10重装系统/迁移系统,教你如何简单快速删除原系统文件
  9. [精简]快速入门五线谱
  10. Android 图片压缩的几种方法