<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mmoojing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mmoojing]]></copyright><item><title><![CDATA[用ECLipse连接Oracle数据库时出现java.lang.该怎么解决啊]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/42340827</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/42340827</guid><author>mmoojing</author><pubDate>Fri, 02 Jan 2015 13:31:15 +0800</pubDate><description><![CDATA[我们开发过程中特别是用户注册时会有一个效果，就是文本框获取焦点清空提示，如果用户没有输入信息失去焦点赋值上我们的提示语 $(function(){ $(http://book.zongheng.com/chapter/202049/4722403.html
http://book.zongheng.com/chapter/202049/7308795.html
http://book.zong]]></description><category></category></item><item><title><![CDATA[springmvc要怎么设置才会返回JSON数据   默认情况下springmvc返回的是啥形式的数据啊]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/42340761</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/42340761</guid><author>mmoojing</author><pubDate>Fri, 02 Jan 2015 13:16:31 +0800</pubDate><description><![CDATA[重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类：编译期重排序和运行期重排序，分别对应编译时和运行时环境。 在并发程序中，程序员会特别关注不同进程或线程之间的数据同步，特别是多个线程同时修改同一变量时，必须采取可靠的同步或其它措施保障数据被正确地修改，这里的一条重要原则是：不要假设指令执行的顺序，你无法预知不同线程之间的指令会以何种顺序执htt]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 包含min函数的栈]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/30990487</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/30990487</guid><author>mmoojing</author><pubDate>Sun, 15 Jun 2014 16:21:15 +0800</pubDate><description><![CDATA[题目：

定义栈的数据结构，要求添加一个min函数，能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。

思路：
在栈结构体中添加一个min最小值的变量，可以随时读取。
 
1.存储结构
typedef int SElemType;          //变量类型
typedef struct LinkStackNode
{
    SElemT]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 删除子字符串]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/21536723</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/21536723</guid><author>mmoojing</author><pubDate>Wed, 19 Mar 2014 15:53:43 +0800</pubDate><description><![CDATA[题目：
   只要是原字符串中有相同的子串就删掉，不管有多少个，返回子串个数。
 
代码：
int Delete_Sub_Str(const char *str, const char *sub_str, char *result)
{
    	if(str == NULL || sub_str == NULL)
	{
		return 0;
	}

	//记录子字符串出现次数
	int]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 拷贝字符串]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/20553049</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/20553049</guid><author>mmoojing</author><pubDate>Wed, 05 Mar 2014 16:19:38 +0800</pubDate><description><![CDATA[题目：
   用c语言实现拷贝字符串strcpy()函数。将字符串一逆向拷贝到字符串二中。
 
思路：
   将字符串一从右到左逐一拷贝到字符串二中。
 
代码：
char *StringReverseCopy(char *strDest, char *strSrc)
{
    if(strDest == NULL || strSrc == NULL)
    {]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 比较两个字符串]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/19542947</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/19542947</guid><author>mmoojing</author><pubDate>Thu, 20 Feb 2014 10:33:06 +0800</pubDate><description><![CDATA[题目：
   用C语言实现比较两个字符串strcmp()函数。

思路：
   两个字符串从左向右逐个比较字符，当遇到不同的字符或“\0"终止符时比较终止。
   当两个字符串相等时返回0，若两个字符串不相等时返回第一个不相等字符的值差。
 
代码：
int StringCompare(char *str1, char *str2)
{
    //当str1 == str2时，返]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 字符串的左旋转操作]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/19156861</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/19156861</guid><author>mmoojing</author><pubDate>Thu, 13 Feb 2014 13:50:54 +0800</pubDate><description><![CDATA[题目：
定义字符串的左旋转操作：把字符串前面的若干个字符移动到字符串的尾部。
如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
要求时间对长度为n的字符串操作的复杂度为O(n)，辅助内存为O(1)。


思路：
因为要求辅助内存只是1，所以可以通过反转字符串完成。
字符串分为两部分，用AB表示，A代表需要左旋转的部分，B代表剩下的部分。
首先分别]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 找出字符串中第一个只出现一次的字符]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/19078225</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/19078225</guid><author>mmoojing</author><pubDate>Tue, 11 Feb 2014 17:23:59 +0800</pubDate><description><![CDATA[题目：
在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff，则输出b。
为了简单起见，假设字符串都是小写字母。


思想：
先遍历一遍，用一个数组统计每一个字符出现的次数。
然后再从字符串的开头开始找出第一个仅出现一次的字符。


代码：
void FirstAppear(char *outputCh, char *intputstr)
{
    if(in]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 找出字符串最长的数字串]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/18912855</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/18912855</guid><author>mmoojing</author><pubDate>Mon, 03 Feb 2014 22:07:28 +0800</pubDate><description><![CDATA[题目：
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能：
在字符串中找出连续最长的数字串，并把这个串的长度返回，
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后，函数将返回9，
outputstr所]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 斐波那契数列]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/18893247</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/18893247</guid><author>mmoojing</author><pubDate>Sat, 01 Feb 2014 10:08:41 +0800</pubDate><description><![CDATA[﻿﻿
题目：
定义Fibonacci数列如下：  
            0      n=0
f(n) =       1      n=1
       f(n-1)+f(n-2) n=2
输入n，用最快的方法求该数列的第n项。


代码：
   用递推法替换递归法，用空间换取时间。
int Fibonacci(int n)
{
    int sum = 0;

  ]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 翻转句子中单词的顺序]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/18364607</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/18364607</guid><author>mmoojing</author><pubDate>Tue, 21 Jan 2014 10:35:03 +0800</pubDate><description><![CDATA[//将字符串中从left到right的子字符串反转
char *ReverseString(char *string, int left, int right)
{
    if((string == NULL) || (left == right))
    {
        return string;
    }
    char ch;
    int i = left;//标记要反转的]]></description><category></category></item><item><title><![CDATA[[开心IT字符串] 反转字符串]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/18364305</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/18364305</guid><author>mmoojing</author><pubDate>Thu, 16 Jan 2014 18:09:07 +0800</pubDate><description><![CDATA[题目：
   用C语言实现反转字符串strrev()函数。
 
思想：
   循环，依次将第一个字符和最后一个字符交换，第二个字符和倒数第二个字符交换…（终止符“\0”不动）
   面试提问字符串的操作，主要是考察几点：一对指针和字符串的理解，二是是否进行合法性检查，三是返回值是否是恰当。
 
代码：
char *ReverseString(char *string)
{]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 求字符串长度]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/18364049</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/18364049</guid><author>mmoojing</author><pubDate>Thu, 16 Jan 2014 17:50:53 +0800</pubDate><description><![CDATA[题目：
   用C语言实现求字符串长度strlen()函数。
 
思路：
   遍历一遍字符串里所有字符，当遇到“\0"字符串终止符时退出。
 
代码：
int StringLength(char *string)
{
    int stringLen = 0;
    if(string != NULL)
    {
        while(*string++ != '\0']]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 不用乘法或加法增加8倍，用同样的方法增加7倍]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/18356737</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/18356737</guid><author>mmoojing</author><pubDate>Thu, 16 Jan 2014 14:38:26 +0800</pubDate><description><![CDATA[题目：
不用乘法或加法增加8倍，用同样的方法增加7倍。
 
解决：
利用位运算来实现，左移一位扩大两倍，右移一位缩小两倍。
假设数据为X。
增加8倍：X 
增加7倍：(X > 1]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 查找最小的K个元素（数组）]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/17631051</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/17631051</guid><author>mmoojing</author><pubDate>Thu, 16 Jan 2014 12:36:26 +0800</pubDate><description><![CDATA[题目：
输入n个整数，输出其中最小的k个。
例如输入1，2，3，4，5，6，7和8这8个数字，则最小的4个数字为1，2，3和4。]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 面试题汇总]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/17885457</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/17885457</guid><author>mmoojing</author><pubDate>Sun, 05 Jan 2014 17:21:45 +0800</pubDate><description><![CDATA[一、链表系列
1、单链表基础
2、单链表排序、反转
3、找出单链表的倒数第k个元素
4、找出单链表的中间元素
5、给定单链表，检测是否有环
6、有两个有序链表，各自内部是有序的，但是两个链表之间是无序的，合并两个链表。
7、*给定两个非环单链表(first, second)，检测两个链表是否有交点，如果有返回第一个交点。
8、n个数字（0,1,…,n-1）形成一个圆圈，从数字0]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 堆排序]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/17716725</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/17716725</guid><author>mmoojing</author><pubDate>Tue, 31 Dec 2013 21:39:07 +0800</pubDate><description><![CDATA[1、基本思想
将数组划分成无序区和有序区，利用大根堆或小根堆思想。
1）首先将无序区elem[0,n-1]建立大根堆，然后将堆首elem[0]与堆尾elem[n-1]交换，堆尾之后为有序区。
2）将新的无序区elem[0,n-2]调整为大根堆，然后将堆首elem[0]与堆尾elem[n-2]交换，堆尾进入有序区。
3）将新的无序区elem[0.n-3]调整为大根堆……重复操作，直到无序区只]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 直接选择排序]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/17716375</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/17716375</guid><author>mmoojing</author><pubDate>Tue, 31 Dec 2013 20:16:43 +0800</pubDate><description><![CDATA[1、基本思想
    将数组划分为有序区和无序区，寻找无序区中的最小值和无序区的首元素交换，有序区扩大一个，循环至无序区全部交换完时，则排序完毕。


2、直接选择排序属于不稳定的排序。
时间复杂度都是O(n^2)，空间复杂度O(1)。



3、代码
将elem[]数组按递增进行直接选择排序
void SelectSort(int elem[], int elemLen)
]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 快速排序]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/17690657</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/17690657</guid><author>mmoojing</author><pubDate>Mon, 30 Dec 2013 23:12:23 +0800</pubDate><description><![CDATA[1、基本思想
首先任意选择一个数据做为划分数组的参照数，将所有比参照数小的数移到它前面，将所有比参照数大的数移到它后面。然后再分别对参照数两边继续进行排序，以达到整个序列有效。
1）以第一个数组元素作为参照数、以left、right分别做为数组第一个数和最后一个数的标记。
2）从right位置开始向前找，找到第一个小于参照数的数，然后将此数赋给left位置。
3）从left位置开始向后找，]]></description><category></category></item><item><title><![CDATA[[开心IT面试题] 冒泡排序]]></title><link>https://blog.youkuaiyun.com/mmoojing/article/details/17662657</link><guid>https://blog.youkuaiyun.com/mmoojing/article/details/17662657</guid><author>mmoojing</author><pubDate>Sun, 29 Dec 2013 23:03:36 +0800</pubDate><description><![CDATA[1、基本思想
将数组划分为有序区和无序区，不断通过交换将较大元素移至无序区尾。若在某一趟排序中未发生交换事件时，或无序区已全部排序完时，则排序完毕。



2、最优情况：（待排序数组是正序）只用比较一次就行了。复杂度O(n)。
最差情况：（待排序数组是逆序）要比较n^2次才行，复杂度O(n^2)。


3、冒泡排序属于稳定的排序。
最坏时间复杂度O(n^2)，最好时间复杂度O(]]></description><category></category></item></channel></rss>