2016年5月面试题(Unity&iOS)
NGUI的DrawCall
- drawcall定义:对底层图形程序(比如:OpenGL ES)接口的调用,以在屏幕上画出东西。
List在内存中连续的空间保存
List是线性直接存储类型
mipMap是什么?
mipMap是摄像机离得远近用不同的图片 - 参考文章
折半查找算法 GitHub算法链接(C++)
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int main()
{
int binaryFind(int[],int,int);
void printArray(int[],int);
int n,i,j,key,array[MAX];
printf("\t\t\t\tBinaryFind8\nInput the size of the array:");
scanf(" %d",&n);
printf("Input a sort of increase numbers:\n");
for(i=0; i<n; i++)
scanf(" %d",&array[i]);
printf("Input finished!\n");
printf("Input the key you would like to find:");
scanf(" %d",&key);
j = binaryFind(array,n,key);
printf("\nThe position of the key is : %d",j+1);
system("pause");
return 0;
}
int binaryFind(int array[],int n,int key)
{
//low低值,high高值,mid中值
int low = 0;
int high = n-1;
int mid;
//查找key
while(low <= high)
{
//更新中间位置index
mid = (low + high)/2;
//找到key,返回位置index
if(array[mid] == key)
return mid;
//中值大于key,key在前半部分,更新high
else if(array[mid] > key)
high = mid-1;
//中值小于key,key在后半部分,更新low
else low = mid+1;
}
//没有找到,返回-1
return -1;
}
//打印数组
void printArray(int array[] ,int n)
{
int i = 0;
while(i<n)
{
printf(" %d",array[i]);
i++;
}
}
iOS weak
和strong
只要有任何strong 指向某个对象A,ARC
就不会摧毁它(A)。
而weak所指向的对象B,只要没有其他strong指向该对象(B),ARC会摧毁它(B)。
iOS 深复制浅复制
浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。
信号量机制解决多线程问题
系统级的多线程同步共享资源,利用其可实现多线程的协同工作。