面试常见基础算法:排序/查找/树的遍历等(python版)

总结一下基本算法,以备忘,以复习。当然,你别指望考官会直接考你这些,太基础,但是,当他知道你这些都写不出来的时候,你面试绝对没希望了。PS: 真的有面试官会考啊,至少Baidu会考…………8大排序冒泡排序 稳定排序,简单易于实现,复杂度$Ο(n ^2)$ 1234567def bubble_sort(arr): length = len(arr) for i in range(length): for j in range(i, length): if arr[i] > arr[j]: arr[i], arr[j] = arr[j], arr[i] return arr选择排序 不稳定排序,复杂度$Ο(n…

0 Comments

理解triplet loss

理解triplet loss,与给出TensorFlow和numpy两种形式的example code。 Triplet Loss 是当前应用的很广泛的一种损失函数,在人脸识别和聚类领域,这是一种很自然的映射与计算损失的方式,比如FaceNet里,通过构建一种embedding 方式,将人脸图像直接映射到欧式空间,而优化这种embedding的方法可以概括为,构建许多组三元组(Anchor,Positive,Negative),其中Anchor与Positive同label,Anchor与Negative不同label(在人脸识别里面,就是Anchor与Positive是同一个个体,而与Negative是不同个体),通过学习优化这个embedding,使得欧式空间内的Anchor与Positive 的距离比与Negative的距离要近。公式表示用公式表示就是,我们希望:$$leftlVert f(x^a_i) - f(x^p_i) rightrVert ^2_2 +alpha lt leftlVert f(x^a_i) - f(x^n_i) rightrVert ^2_2 , forall (f(x^a_i) , f(x^p_i) , f(x^n_i)) in mathscr…

0 Comments

QuickSort in C & Python

本文主要关于演示C语言中的快排算法。大名鼎鼎的QuickSort–快速排序算法,如此的高效、快速而优雅,今天让我们用图片和文字形象地展示一下它吧!快排是一种分治算法,其主要思想在于通过选取一个基准Pivot将序列分为左右两个子序列,其中左序列的数都小于等于Pivot,右边的都大于等于Pivot,再在这两个子序列上递归调用快排算法即可。而理解快排算法的核心就在于分解这个步骤,这里我们先给出代码,再用图片展示步骤。1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859//// main.c// QuickSort//// Created by frankchen on 12/2/16.// Copyright © 2016 frankchen. All rights reserved.//#include <stdio.h>#define N 5void QuickSort(int s[],int low,int high);void swap(int s[],int i,int j);int main(void){ int a[N], i;…

0 Comments