- 浏览: 63028 次
- 性别:
- 来自: 北京
最新评论
一个数组a[0-n-1],a[0-mid]和a[mid+1-n-1]是各自升序的,现在要把a[0-n-1]排成有序的。要求空间复杂度o(1),时间复杂度尽量低。
我想到的方法就是将后面序列的每个元素对前面序列进行插入排序。搜索插入位置的时候考虑从上一个插入元素位置之后开始搜索。
说明一下这个方法时间复杂度最坏应该是o(n^2),网上有o(n)解法。
我想到的方法就是将后面序列的每个元素对前面序列进行插入排序。搜索插入位置的时候考虑从上一个插入元素位置之后开始搜索。
说明一下这个方法时间复杂度最坏应该是o(n^2),网上有o(n)解法。
#include <stdlib.h> int insert(int* a, int begin, int end, int x){ int pos = end; //插入位置 int last = a[end]; int exchange = 0; int i; //寻找插入位置 for(i = begin; i <= end; i++){ if(a[i] > x){ pos = i; exchange = 1; break; } } if(exchange){ //移动元素 for(i = end; i > pos; i--){ a[i] = a[i-1]; } a[end+1] = last; a[pos] = x; }else{ pos = end+1; } return pos; } void print_r(int* a, int n){ int i = 0; while(i<n){ printf("%d\t",a[i++]); } printf("\n"); } void merge(int* a, int n, int mid){ int search_begin = 0; int i; for(i = mid; i < n; i++){ search_begin = insert(a,search_begin, i, a[i+1]); } } int main(){ int a[10] = { 1,2,3,7,9,0,4,10,18,20 }; int mid = 4; merge(a,10,mid); print_r(a,10); return 0; }
发表评论
-
求链表中间节点的值,检测链表的环
2012-07-27 14:19 851求链表中间节点的值,检测链表的环 int loop(st ... -
实习前记
2012-07-16 15:27 755经过回来一周的找工作,总体感觉就是很累啊,每天东跑西颠的。面了 ... -
php函数参数列表
2012-05-11 16:50 1428[size=medium] 1.直接传值 function ... -
php的ob_flush和flush
2012-05-10 21:20 1105php.ini中 output_buffering = of ... -
php读文件的4中方法。
2012-05-10 20:38 906fopen $fp = fopen("downl ... -
自己实现php UTF8中文字符串截取
2012-05-09 11:38 2879header("Content-type: te ... -
C与C++动态分配,释放内存的区别
2012-05-08 17:30 160591. malloc()函数 1.1 malloc的 ... -
nginx rewrite
2012-05-04 11:23 0http://blog.cafeneko.info/2010/ ... -
php magic method
2012-05-04 11:16 895php的魔术方法总结 php的魔术方法都是和类有关的。 ... -
诡异的 shell 08 bug
2012-04-30 01:11 770v=08 echo $v shell里以0开头的都会把它当作8 ... -
排序相关
2012-04-22 16:01 0排序分类 内排序: 交换式排序: ... -
php string
2012-04-22 11:33 970一.字符串类型 php一共有8中数据类型 ... -
简单的树的递归、非递归创建,前序中序后序遍历
2012-04-21 10:03 1070c语言写着还挺带感 #in ... -
php 深度优先递归输出路径下所有文件
2012-04-19 21:27 1523<?php $dir = " ... -
简单的栈
2012-04-19 21:14 704#include <stdio.h> #de ... -
简单的循环队列
2012-04-19 21:13 804#include <stdlib.h> ... -
单链表删除一个节点
2012-04-19 21:10 9853有头结点的情况,附加一个逆置 #include <s ... -
KMP与BF,实现了一个非主流next函数
2012-04-19 20:16 928#include <stdlib.h> #i ... -
ip过滤问题
2012-03-22 21:09 0假设有很多段ip段属于教育网的,如何尽快辨别一用户ip是否属于 ... -
求三叉树高度
2012-03-18 17:05 3145有12345个结点的满3叉数的高度为_____写出计算过程 ...
相关推荐
【百度笔试题】中的知识点主要涉及三个方面:编程题、算法题和系统设计。下面将分别对这三个方面进行详细的解析。 1. **编程题** 这道编程题要求编写一个函数`is_include(char *a, char *b)`,判断字符串`b`的所有...
本文档总结了北京-百度计算机视觉算法工程师笔试的回忆版,涵盖了计算机视觉、算法设计、人工智能等方面的知识点。下面将对标题、描述、标签和部分内容进行详细解释和总结。 一、OSI七层模型 OSI七层模型是国际...
【标题解析】:“08百度笔试题(北京)”指的是2008年百度公司在北京市进行的一次技术笔试,主要针对系统开发工程师等职位。题目旨在考察应聘者的编程能力、算法理解和系统设计思维。 【描述解析】:16号的百度北京...
本文档精选了100道程序员笔试算法题,其中一道经典题目是如何将二叉查找树转换为排序的双向链表。 #### 问题描述 给定一个二叉查找树(Binary Search Tree, BST),任务是将其转换为一个排序的双向链表(Doubly ...
例如,可能会有一道题目要求你在有限的时间内找到最短路径,这就需要用到Dijkstra算法或Floyd算法。此外,对于数据结构的理解和运用也至关重要,例如如何高效地查找、插入和删除数据,这就涉及到了二叉树、堆、哈希...
2. “笔试真题”可能包含历年的百度笔试题目,涵盖数学逻辑、编程能力、专业知识等多个方面,便于求职者进行模拟练习。 3. “技术面试指南”可能提供面试准备建议,包括技术领域重点、面试流程介绍、面试技巧等,...
【标题】:“百度度技术研发笔试题,好几个” 这个标题揭示了这是一个包含多个百度技术研发笔试题目的集合。在IT行业中,大型公司如百度通常会通过笔试环节来筛选技术人才,考察应聘者的编程能力、算法理解、计算机...
这篇文档是百度2014年校园招聘的数据挖掘笔试题目,旨在考察应聘者的理论基础、算法理解以及系统设计能力。 首先,我们来看简答题部分: 1. 静态数据库和动态数据库的优缺点: - 静态数据库:优点在于数据稳定,...
【深度学习算法研发...以上是对百度2014年深度学习算法研发工程师笔试题的解析,这些题目涵盖了深度学习的基础理论、数据结构与算法、并行计算等多个重要知识点,反映了企业在招聘此类工程师时对综合能力的高要求。
- 这是一道编程题,要求找到大于给定正整数的最小不重复数。可以通过遍历所有大于该数的整数,检查相邻数字是否不同来实现。 5. 字符串中寻找子串的能动性(Kinetic Energy): - 能动性可能是指子串出现的次数,...
在百度技术招聘的笔试题目中,我们可以看到三个主要的编程挑战,这些挑战涵盖了数据结构、算法优化以及大规模数据处理的设计。下面将详细讨论这三个题目所涉及的知识点。 首先,第一题要求设计一个栈结构,其提供了...
### 查找连续的字符串-百度笔试题 #### 题目背景与要求 这是一道来自百度公司的编程笔试题目。题目要求实现一个程序,能够在一个给定的字符串中找到所有连续的数字序列,并最终输出最长的连续数字串。 #### 题目...
本资源精心收录了多家知名企业(包括奇安信、贝壳找房、小米、游卡、vivo、阿里巴巴、爱奇艺、百度、猿辅导、中兴等)的C++方向笔试题,覆盖从2020年至2022年的秋招和校招题目。这些题目不仅考察了C++的基础知识,如...
《2016年百度校园招聘笔试题精选》文档涵盖了计算机科学和技术的多个核心领域,包括数据库管理、操作系统原理和算法设计。以下是针对题目中涉及的知识点的详细解析: 一、简答题 1. **动态链接库 vs 静态链接库** ...
在笔试阶段,百度设置了较高难度的算法题目,这对求职者来说是一道不小的挑战。尽管我自认为在算法方面没有特别突出的优势,但我还是坚持参与了整个过程。笔试题中包含对深度优先搜索(DFS)和广度优先搜索(BFS)的...
7. **算法与程序设计题**:这是一道关于查找字符串中最长连续数字子串的题目。题目要求不使用库函数,通过遍历字符串,判断当前字符是否为数字,并计算连续数字的长度,找到最长的数字子串。 8. **New Coke营销案例...
3. **蚂蚁问题**:这是一道关于状态机和算法设计的问题。在Java中,可以使用并发编程的知识来模拟蚂蚁的行为,例如使用synchronized关键字或java.util.concurrent包下的工具类。 4. **数组奇偶排序**:这题要求O(1)...
IT公司的笔试是求职者在进入IT行业前必须跨越的一道门槛,这些公司的笔试题目往往涵盖了广泛的技术领域,旨在考察候选人的基础知识、编程能力、逻辑思维和问题解决技巧。以下是一些主要IT公司笔试题目的常见知识点:...