发表于: 2018-02-24 22:15:21
0 537
今天完成的事情:
1. 今天面试一家
2. 投了一家,周一面试
3. 把任务一的深度思考过到了15个
4. 总结下堆排序和选择排序
明天计划的事情
1. 完成任务1的深度思考,任务二看5-7个
2. 总结连个算法
3. 看1-2个设计模式
4. 继续投简历
5 .整理一下面试需要的,整理到一个笔记组里
遇到的问题:
1. 算法烧脑
收获:
1. 算法总结
选择排序:
10个数的数组
设有一个指针【i】指向第一位数字,每次比较完后找到在【i】-【n】的最小值
假设在【0】是最小的,记录下标min,对【1】-【9】进行比较,每次找到比min下标处的值还小的就把这个下标赋给min , 找到真正的最小值记录下标min , [1]-[9]比较完成后对【0】 和 【min】的数字交换,i++
再从【i】开始,假设为最小 对【2】-【9】比较 找到真正的最小值记录下标min , [1]-[9]比较完成后对【0】 和 【min】的数字交换
堆排序:
平均性能
O(N*logN)。
其他性能
由于建初始堆所需的比较次数较多,所以堆排序不适宜于记录数较少的文件。
堆排序是就地排序,辅助空间为O(1).
它是不稳定的排序方法。(排序的稳定性是指如果在排序的序列中,存在前后相同的两个元素的话,排序前 和排序后他们的相对位置不发生变化)
评论