近期

近期参加了多次笔试与面试,大概做一下梳理。

笔试:田忌赛马问题,拿石问题;

面试:封装链表!!!(第二次考察这个了),排序(快排,冒泡),不用中间变量交换两个变量的值(a,b->a+b,a-b->a-b,b),TCP/IP,七层网络结构,TCP/UDP区别,LINUX常用指令,LINUX根目录文件,程序编译过程,SQL基本语句(查找,联合查找)动态内存分配  堆&栈 


田忌赛马问题

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;

int comp(const void *a,const void *b)
{
    return *(int *)b-*(int *)a;
}
int main(void)
{
    int num;
    while(cin>>num)
    {
        int m[2000],n[2000];
        for(int i=0;i<num;i++)
            scanf("%d",&m[i]);
        for(int j=0;j<num;j++)
            scanf("%d",&n[j]);
        qsort(m,num,sizeof(m[0]),comp);

        qsort(n,num,sizeof(n[0]),comp);

        int a=0;
        int b=0;
        int a1=num-1;
        int b1=num-1;
        int t=0;
        while(a<=a1)
        {
            if(m[a1]>n[b1])
            {
                a1--;
                b1--;
                t++;
            }
            else if(m[a1]<n[b1])
            {
                a1--;
                b++;
                t--;
            }
            else if(m[a]>n[b])
            {
                a++;
                b++;
                t++;
            }
            else
            {
                if(m[a1]>n[b])
                {
                    b++;
                    a1--;
                    t++;
                }
                else if(m[a1]<n[b])
                {
                    b++;
                    a1--;
                    t--;
                }
                else
                {
                    b++;
                    a1--;
                }
            }
        }
        printf("%d\n",t);
    }
    return 0;
}

封装链表

封装链表

排序

冒泡

void maopao(vector<double>&xx)
{
	int size = xx.size();
	for (int i=0;i!=size-1;i++)
	{
		for (int j=0;j!=size-1-i;j++)
		{
			if(xx[j]<xx[j+1])
			swap(xx[j], xx[j + 1]);
		}
	}
}

快排

int  partition(vector<double>& xx, int lo, int hi)
{
	swap(xx[lo], xx[lo + rand() % (hi - lo+1)]);
	double pivot = xx[lo];
	while (lo<hi)
	{
		while ((lo < hi) && (pivot <= xx[hi]))
			hi--;
		xx[lo] = xx[hi];
		while ((lo < hi) && (xx[lo] <= pivot))
			lo++;
		xx[hi] = xx[lo];
	}
	xx[lo] = pivot;
	return lo;
}
void quicksort(vector<double>& v_d, int lo, int hi)//lo hi为数组首位角标
{
	if (hi - lo < 2) return;
	int mi = partition( v_d, lo, hi);
	quicksort(v_d, lo, mi);
	quicksort(v_d, mi + 1, hi);
}

不用中间变量交换两个变量的值

(a,b->a+b,a-b->a-b,b)

七层网络结构

OSI七层与TCP/IP五层网络架构详解

TCP/UDP/IP

TCP、UDP及IP协议总结

LINUX常用指令

鸟叔私房菜总结!!!

LINUX根目录文件

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在 FHS 的要求方面,他希望根目录不要放在非常大的分区槽内, 因为越大的分区槽妳会放入越多的数据,如此一来根目录所在分区槽就可能会有较多发生错误的机会。

根目录(/)所在分区槽应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。

摘自《鸟叔LINUX私房菜》

程序编译过程

c++编译过程简述

SQL基本语句(查找,创建联结)

seleect * from 表 where 条件

select vend_name,prod_name,prod_price

from vendors,products 

where vendors.vend_id=products.vend_id

order by vend_name,prod_name;

动态内存分配 

动态内存分配详解

 new malloc

delete free

堆由程序员自己分配,new malloc等

栈由程序自动管理,函数递归中存储变量

秋招准备~
c++:
 《c++ primer》 二刷(864)
 《stl源码解析》(534)
 《深度探索C++对象模型》(352)
 《Linux多线程服务器端编程》(598)
linux:
 《鸟哥的 Linux 私房菜 基础篇 第4版》(1051)
 《UNIX 环境高级编程@2013 (第3版 扫描版)》(822)
 《UNIX 网络编程卷1 第3版》)(824)(unp)(卷1 前8章)
 《深入理解计算机系统 第3版》(面试)
计算机网络:
 《TCP/IP》(12-16章)

数据库:
 《MySQL必知必会》(搞定)
         

算法:
 《剑指offer》 (129/334)(17/66题)
 《数据结构c++》(358)(12章)

设计模式:
 《Head First 设计模式》(677)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值