数组左旋转k位 —— C++标准算法库中最悲剧的函数:rotate
要将一个数组的所有元素向左旋转k位,通常有三种算法:
算法1(分组交换):
若a长度大于b,将ab分成a0a1b,交换a0和b,得ba1a0,只需再交换a1 和a0。
若a长度小于b,将ab分成ab0b1,交换a和b0,得b0ab1,只需再交换a 和b1。
不断将数组划分和交换,直到不能再划分为止。分组过程与求最大公约数很相似。
读写内存各 n到2*n次
&
http://cyqdata.cn/cnblogs/article-detail-38379
我也要学C语言-第九章:“串串香”-数组
一:数组的作用:
我中午吃了饭就开始学数组了!嘿嘿!我中午吃的“串串香”。这是一种成都很常见的小吃!不过大多数人选择晚上去吃。“串串香”是一根竹签上穿着几个同类型的食物,比如,穿着5个牛肉丁,穿着4个土豆,等等。然后放在有特制香料的锅里煮着吃。很好的吃的!当我学习到数组的时候,我突然感觉数组就是“串串香”啊!几个土豆串在1
http://cyqdata.cn/cnblogs/article-detail-38184
WebService特性和数组类型解析
本系列文章导航创建一个示例和WebMethod特性解析WebService特性和数组类型解析类和结构体解析利用YAHOO公开API做天气预报Web服务Webservice 的设计和模式Remoting和Webservice的区别
现在开始学习Web服务,写下自己学习过程中的一些感受,拿出来与大家分享,欢迎批评指正。希望能给跟我一样初学Web服务的朋友一些帮助。
昨天我写了前段时间的一些心
http://cyqdata.cn/cnblogs/article-detail-37552
C# 复习、笔试全攻略(三、结构、枚举和数组)
上一篇:C# 复习、笔试全攻略(二、.类)
本系列专题主要介绍、罗列和总结了一些有关C#的基础知识。
旨在面试前或想复习C#基础知识时看看,希望对大家有所帮助。
如发现错误,还望多多指教!
&nb
http://cyqdata.cn/cnblogs/article-detail-37402
不存在的数组元素
数组字面量是个神奇东西,试在chrome的控制台打印如下内容:
>>>[]
[]
>>>[,]
[]
>>>[,,]
[]
但这不是真相,我们用火狐的firebug看看:
>>> []
[]
>>> [,]
[undefined]
>>> [,,]
[undefined, undefined]
这种显示方式类似其他语言的inspect方法,我们不妨再看看其toString方法:
>>>
http://cyqdata.cn/cnblogs/article-detail-37371
数据结构之链表与数组(二) -单向链表上的简单操作问题
本文主要介绍一些解决单向链表上部分操作问题的思路和代码实现。
主要的问题包括以下几点:
1 向单向链表中插入一个节点
2 删除单向链表中的一个节点
3 查找单向链表中的一个节点
扩展问题1:查找单向链表中的倒数第k个节点。
扩展问题2:查找单向链表中的中间节点,当节点总个数为偶数时返回中间两个元素中的前者(后者)
4反转单向链表(非递归实
http://cyqdata.cn/cnblogs/article-detail-37049
数据结构之链表与数组(-)——数组和链表的简介
众所周知,在计算机中要对给定的数据集进行若干处理,首要任务是把数据集的一部分(当数据量非常大时,可能只能一部分一部分地读取数据到内存中来处理)或全部存储到内存中,然后再对内存中的数据进行各种处理。
例如,对于数据集S{1,2,3,4,5,6},要求S中元素的和,首先要把数据存储到内存中
http://cyqdata.cn/cnblogs/article-detail-37027
在多维数组中根据键名快速查询其父键以及父键值
有一个多维数组,有多少维大家可以自定义。假如我们要在这个数组中找一个键为'subIndex'的值,我们可以用for、foreach等方法遍历查找反过来,假如我们任意给出一个或多个键,要求找出这个键的父级数组的键和值。这又如何实现?
我这么想的:
遍历一遍多维数组,将所有的键建立索引生成一个一维数组;
每次通过键名去查这个键的上级数组及数据
OK,代码如下
indexKey创建索引数组函数:
http://cyqdata.cn/cnblogs/article-detail-36868
javascript中使用splice方法轻松实现对数组元素的插入、删除、替换
面试的时候如果主考官让你使用JavaScript来实现对数组元素进行插入、删除、替换操作。如果不知道Array.prototype.splice的使用的方法那很有可能就要被扣分了。使用javascript数组类型内置的splice方法仅需一行代码即可轻松实现对数组元素进行插入、删除、替换操作。
方法签名:
Array.prototype.splice(index,count[,elm1,elm2.
http://cyqdata.cn/cnblogs/article-detail-36595
用二叉树来理解树状数组
树状数组(Fenwick tree,又名binary indexed tree),是一种很实用的数据结构。它通过用节点i,记录数组下标在[ i –2^k + 1, i]这段区间的所有数的信息(其中,k为i的二进制表示中末尾0的个数,设lowbit(i) = 2^k),实现在O(lg n) 时间内对数组数据的查找和更新。
树状数组的传统解释图,不能很直观的看出其所能进行的更
http://cyqdata.cn/cnblogs/article-detail-36241
MVC中,Ajax Post 数组的实现方案
如果HTML 脚本是这样的话:
<form action="P.aspx" ><input type="checkbox" name="v" value="v1" /><input type="checkbox" name="v" value="v2" /></form>
当Post 的时候, Action 可以是这样:
public User
http://cyqdata.cn/cnblogs/article-detail-36071
JavaScript中清空数组的两种方式
方式1,length赋值为0
这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如
int[] ary = {1,2,3,4};
ary.length = 0;
Java中会报错,编译通不过。而JS中则可以,且将数组清空了,
var ary = [1,2,3,4];
ary.length = 0;
console.log(ary); // 输出 [],空数组,
http://cyqdata.cn/cnblogs/article-detail-36002
将JavaScript 函数内的arguments 对象转换为数组
函数内的arguments 对象,有人称之为“类数组”对象,因为它具有数组的一些特性:拥有length 属性、并且用数字索引存放着参数以便访问,可大家都知道其实它并不是数组。
有的时候需要将参数列表看作一数组,以便使用数组的一些方法(如concat, splice 等)进行操作,这就要想办法做一个转换,《JavaScript 语言精粹》一书中有类似这么一段操作:
(fun
http://cyqdata.cn/cnblogs/article-detail-31856
JavaScript奇技淫巧之遍历数组
正常的for循环就不提了,直接进入正题。如下:
//示例1
for(var i=0,a;a=["jack","tom","lily","andy"][i++];){
console.log(a);
}
//示例2
var ary = ["jack","tom","lily","andy"];
for(var i=0,a;a=ary[i++];){
console.log(a);
}
从F
http://cyqdata.cn/cnblogs/article-detail-31710
JavaScript奇淫技巧之遍历数组
正常的for循环就不提了,直接进入正题。如下:
//示例1
for(var i=0,a;a=["jack" , "tom" , "lily" , "andy"][i++];){
console.log(a);
}
//示例2
var ary = ["jack" , "tom" , "lily" , "andy"];
for(var i=0,a;a=ary[i++];){
console.log(a);
}
从F
http://cyqdata.cn/cnblogs/article-detail-31672
Javascript1.6数组新特性和jquery的几个工具方法
JavaScript 1.6 引入了几个新的Array 方法,具体的介绍见:New in JavaScript 1.6 。这些方法已经被写进了ECMA262 V5。现代浏览器(IE9/Firefox/Safari/Chrome/Opera)都已经支持,但IE6/7/8不支持。jquery的工具方法中提供了类似的功能。1、Array.forEach()和jquery的$().each()。在数组中的
http://cyqdata.cn/cnblogs/article-detail-31580
利用JS的动态语言特性对数组排序
首先,看看JS和Java中关系运算符的区别。这里拿大于号做示例(>)。
1、Java中的大于号不能用于两个字符串的比较
String s1 = "11", s2 = "12";
System.out.println(s1>s2); //编译报错,不能通过
2、JS中的则可以,比较的字符串中各个字符ASCII大小
var s1="11",s2="12";
console.lo
http://cyqdata.cn/cnblogs/article-detail-31579
BitConverter.GetBytes 方法以什么顺序返回字节数组
前言
我在“浅谈 ZipInteger”一文中的 ZipInteger 结构中使用了 BitConverter 类的 GetBytes 方法。当时我是假设 GetBytes 方法根据 IsLittleEndian 的值不同而按照不同的顺序返回字节数组。但是 MSDN 有关 BitConverter 类的文档中没有对此作出明确的说明。请参见我在 MSDN 论坛的一个贴子&ld
http://cyqdata.cn/cnblogs/article-detail-3632