插入排序原理:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。
插入排序实现:
void insertion_sort(int a[], int n)
{
int i,j,tmp;
for (i = 1; i < n; i++) {
tmp = a[i...
分类:
编程语言 时间:
2015-04-28 18:23:49
阅读次数:
133
题目1:给出一个一维数组A, 大小为n, 相邻元素的差的绝对值都为1. 如A = [1, 0, 1, 2, 3, 2, 1, 2, 3],现在给定A和目标查找数num. 请找到num在数组中的位置。
题目2:在题目一的前提下,现在要返回num的所有索引位置。思路:依次遍历可以实现,但是复杂度O(N).
如果数组第一个元素是A[0], 要找的数是num. 设 t = abs(num - A[0]...
分类:
编程语言 时间:
2015-04-27 21:59:15
阅读次数:
181
jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值。官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该用attr(),什么时候该用prop()呢?大家都知道有的...
分类:
Web程序 时间:
2015-04-27 15:05:12
阅读次数:
117
1、
一般而言,数组名代表了数组本身,但如果把数组名看做指针的话,它指向数组的第一个元素的地址。
例1:
int array[10]={0,1,2,3,4,5,6,7,8,9};
int value;
value=array[0]; //也可写成:value=*array;
value=array[1]; //也可写成:value=*(array+1);
value=array[2]...
分类:
编程语言 时间:
2015-04-27 09:56:39
阅读次数:
92
基本思想:
直接插入排序的思想非常简单,将序列中第一个元素作为一个有序序列,然后将剩下n-1个元素按关键字大小依次插入该有序序列,每插入一个元素后依然保持该序列有序,经过n-1趟排序后即成为有序序列。
直接插入排序示例:
由图可以看到,括号里面的都是有续表,而货号后面的灰色关键字是下一个将要插入的元素。
代码:
void InsertSort(int A[],in...
分类:
编程语言 时间:
2015-04-26 22:51:28
阅读次数:
148
就像数组名是指向数组的第一个元素的常指针一样,函数名也是指向函数的常指针。可以声明一个指向函数的指针变量,并且用这个指针调用其他函数(只要这个函数和你的函数指针在签名、返回、参数值方面一致即可)。
例1:
long (* fun) (int)
上面就是一个函数指针,该指针返回值类型是long,所带的参数类型是int。
例2:
int fun(char *,int);...
分类:
其他好文 时间:
2015-04-26 22:49:34
阅读次数:
140
1、解题思路
按题要求,输入数据后先进行是否有两两相同的数据的判断,接着进行从小到大的排序,由于是求质数无关,则集合中任何一对数都不能质数相关,本人采用顺序遍历,将集合中每个数字分为必须包含和必须排外两种情况遍历,首先集合第一个数必须包含,且作为子集中第一个元素,由于是有序数据,只需从集合第二个数遍历起,对加人子集的每个数做质数相关判断(需要遍历一遍),若与子集每个数都质数无关,则将该数纳入该子集...
分类:
其他好文 时间:
2015-04-26 18:23:16
阅读次数:
119
题目描述动态规划的要素是“最优子结构”和“重叠子问题”。解决问题最重要的是确定“状态”的含义和“转移方程”,以及最终解的状态表示。对于本题而言:状态 —— V[i, j]这个状态表示从顶(第一层第一个元素)到第i层第j个元素能达到的最大值转移方程 —— V[i, j] = max(V[i-1, j-...
分类:
其他好文 时间:
2015-04-25 22:28:28
阅读次数:
187
STL 中队列的使用(queue)基本操作:push(x) 将x压入队列的末端pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front() 返回第一个元素(队顶元素)back() 返回最后被压入的元素(队尾元素)empty() 当队列为空时,返回truesize() 返回队列...
分类:
其他好文 时间:
2015-04-25 21:00:09
阅读次数:
129
题目要求:从一个链表中删除指定的元素。
分析:首先要考虑链表的非空问题,我想这应该是判断链表和数组问题最首先要考虑处理的问题。其次是如果前几个元素都是与指定元素相同,也要做一次处理,使head指向(在非空的情况下)与指定元素不相等的第一个元素。注意:在这里我碰到了一个很可笑的问题,就是while里面循环的判断条件,应该让head!=NULL在前面,这样就能保证head->val的值的问题,一直在...
分类:
其他好文 时间:
2015-04-24 12:44:50
阅读次数:
104