题目描述
http://acm.nyist.net/JudgeOnline/problem.php?pid=306
Dr.Kong设计的机器人卡多非常爱玩,它常常偷偷跑出实验室,在某个游乐场玩之不疲。这天卡多又跑出来了,在SJTL游乐场玩个不停,坐完碰碰车,又玩滑滑梯,这时卡多又走入一个迷宫。整个迷宫是用一个N * N的方阵给出,方阵中单元格中填充了一个整数,表示走到这个位置的难度。这个...
分类:
其他好文 时间:
2015-03-18 23:25:25
阅读次数:
348
题目地址:https://leetcode.com/problems/search-in-rotated-sorted-array/Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are give...
分类:
其他好文 时间:
2015-03-16 17:48:11
阅读次数:
97
1.直接插入排序
《算法导论》P10,《数据结构》P265
向已经排好序的数组a[1..j-1]插入a[j],进行一趟循环遍历。插入排序的基本操作是在一个有序表进行查找和插入。每一趟插入排序从后往前进行比较,便于数组中元素的向后移动。
空间复杂度:O(1)(当使用swap交换时,可实现原址)
时间复杂度:(n^2)/4
即O(n^2)
2.拓展
1)折半查找排...
分类:
编程语言 时间:
2015-03-16 16:29:20
阅读次数:
204
题目意思
1、给定有序数组A和关键字key,判断A中是否存在key,如果存在则返回下标值,不存在则返回-1。
2、给定无序数组A和关键字key,判断A中是否存在key,如果存在则返回1,不存在则返回0。
对于1、2问题,我们都可以简单的写出O(n)的从头到尾为的扫描算法,这里就不在累赘,这里我们讨论的是基于二分查找的算法,使其时间在渐进意义上达到O(logn)。
对于有序的数组,很“容...
分类:
编程语言 时间:
2015-03-15 23:46:44
阅读次数:
446
1.题目描述:点击打开链接
2.解题思路:本题是典型的二分搜索题,二分答案后验证是否满足和大于等于S即可。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2015-03-15 18:28:24
阅读次数:
138
作为分治法的典型应用,二分搜索是程序员的常用算法。但是这个算法,却往往容易写错。因此,特意备份了July的一份代码,以备查询之用。//二分查找V0.1实现版 //copyright@2011 July //随时欢迎读者找bug,email:zhoulei0907@yahoo.cn。 //首...
分类:
其他好文 时间:
2015-03-15 16:47:36
阅读次数:
98
一 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。
Union:将两个子集合并成同一个集合。
因为它支持这两种操作...
分类:
编程语言 时间:
2015-03-14 23:17:48
阅读次数:
195
查找算法一、查找的基本概念查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素而进行的工作。查找是一种操作。二、顺序查找针对无序序列的一种最简单的查找方式。时间复杂度为O(n)。三、二分查找(折半查找)针对已排序序列的一种查找方式。并且只适用于顺序存储结构的序列。要求序列中的元素基本不变,在...
分类:
编程语言 时间:
2015-03-12 22:32:03
阅读次数:
629
A peak element is an element that is greater than its neighbors.Given an input array wherenum[i] ≠ num[i+1], find a peak element and return its index....
分类:
其他好文 时间:
2015-03-12 18:51:54
阅读次数:
218
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。C++源代码: 1 // 二分查找.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h"....
分类:
其他好文 时间:
2015-03-12 15:04:16
阅读次数:
92