面试题
Altlentis
这个作者很懒,什么都没留下…
展开
-
常见面试题-排序算法-冒泡排序
排序思想:对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换其位置,进行一轮比较和换位后,n个记录中最大记录将位于第n位 然后对前(n-1)个几轮进行第二次比较; 重复该过程指导进行比较的记录剩下一个为止。特点:稳定性:因为array[j]==array[j+1]的时候,我们可以不移动array[i]和array[j],所以冒泡排序是...原创 2020-04-04 18:48:46 · 598 阅读 · 0 评论 -
常见面试题-排序算法-归并排序
排序思想:将待排序序列从中间一分为二,对左右两边再进行递归分割操作,得到n个相互独立的子序列; 对n个独立的子序列递归的执行合并操作,最终得到有序的序列。特点:稳定性:在合并的时候,如果两个数相等,可以将前面的数先放到辅助数组中,所以归并排序是稳定的。 时间复杂度:每次合并操作的时间复杂度是O(N),而二叉树的深度是log2N,所以总的时间复杂度是O(N*lgN)。python实现...原创 2020-04-04 18:43:31 · 325 阅读 · 0 评论 -
常见面试题-排序算法-快速排序
排序思想:在数列之中,选择一个元素作为”基准”(pivot),或者叫比较值。 数列中所有元素都和这个基准值进行比较,如果比基准值小就移到基准值的左边,如果比基准值大就移到基准值的右边 以基准值左右两边的子列作为新数列,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。特点:稳定性:快排是一种不稳定排序,比如基准值的前后都存在与基准值相同的元素,那么相同值就会被放在一边,这样就打...原创 2020-04-04 18:40:27 · 674 阅读 · 0 评论