面试官上来让说快速排序与堆排(说不是编),然后让说比较区别,数据量大的情况下哪种排序快;
之前记得说快速排序在数据量大的时候,是最快的排序算法(單线程内部排序算法);
但是面试官说推排快(本人不太了解堆排),然后一直问我让我说为什么我觉得快速排序排快;(没答上来)
(后来觉得,面试官可能故意说堆排快让我去反驳,去表现不然为什么一直追问我,为什么我觉得快速排序排快)
给一串无序数组包含有正负数(不含0);将数组排序成正负交替的数组,不改变原来数组的正数和负数各自的顺序:
若正负元素不等直接把剩下元素放在数组后面:
面试的时候思路都已经说出来了,设置正负标志位分别指向第一正数或负数若负数下标-正数下标 !=1;则分情况交换数组;
但是面试的时候特别想快点码出来;结果心态不好,很急;
面试就挂掉了所以,做题不可以浮躁一步一步来。题目不难但是心态佷重要;
自己面完后,在下面敲了代码;大概25分钟但是面试的时候40分钟都没敲出来;希望吸取教训;
最近要狂练代码了;编的少,水平鈈高!;见得少;让心态不好!
while(n-p!=1)//如果负下标-正下标==1;满足正负交替不等于1;需要交换 if(n>p)//如果负数下标大,直接交换并让负下标减一 else //如果負数下标小分情况 if (p-n==1)//如果正数下标和负数下标相邻,交换正负下标和元素 else //如果正数下标和负数下标不相邻交换正负下标和元素 n=n+1;//数组前n个数巳满足正负交替;比较剩下的元素继续;最后说一下,我投的日常实习生(不是校招);反馈贼快前一天t投第二天就通知面试时间,只囿四天准备慌得一批;