当前位置: 首页 > 面试题库 >

请你来手写一下快排的代码

葛子昂
2023-03-14
本文向大家介绍请你来手写一下快排的代码相关面试题,主要包含被问及请你来手写一下快排的代码时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

int once_quick_sort(vector<int> &data, int left, int right)
{
int key = data[left];
while (left < right)
{
while (left < right && key <= data[right])
{
right--;
}
if (left < right)
{
data[left++] = data[right];
}
while (left < right && key > data[left])
{
left++;
}
if (left < right)
{
data[right--] = data[left];
}
}
data[left] = key;
return left;
}
int quick_sort(vector<int> & data, int left, int right)
{
if (left >= right )
{
return 1;
}
int middle = 0;
middle = once_quick_sort(data, left, right);
quick_sort(data, left, middle-1);
quick_sort(data, middle + 1, right);
};

 

 类似资料:
  • 本文向大家介绍请你说一说快速排序,并手写代码相关面试题,主要包含被问及请你说一说快速排序,并手写代码时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。 2、快速排序的三个步骤: (1)选择基准:在

  • 本文向大家介绍请你手写一下单例模式代码?相关面试题,主要包含被问及请你手写一下单例模式代码?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 懒汉式单例模式:延迟实例化,但节省空间 饿汉式单例模式:急切的创建实例,而不用延迟实例化 IoDH实现单例模式  

  • 本文向大家介绍请你来手写一下fork调用示例相关面试题,主要包含被问及请你来手写一下fork调用示例时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、概念: Fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: 成功调用fork( )会创建一个新的进程,它几乎与调用fork( )的进程一模一样,这两个进程都会继续运行。在子进程中,成功的fork( )调用会返回0。在

  • 本文向大家介绍请你手写一下单例模式?相关面试题,主要包含被问及请你手写一下单例模式?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、饿汉模式 这种方式在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快。这种方式基于类加载机制避免了多线程的同步问题,但是也不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化instance显然没有达到懒加载的效果。 2、懒汉模式(

  • 本文向大家介绍请你说一下快排如何实现?相关面试题,主要包含被问及请你说一下快排如何实现?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 首先选择一个轴值,小于轴值的元素被放在数组中轴值左侧,大于轴值的元素被放在数组中轴值右侧,这称为数组的一个分割(partition)。快速排序再对轴值左右子数组分别进行类似的操作 选择轴值有多种方法。最简单的方法是使用首或尾元素。但是,如果输入的数组是正序

  • 本文向大家介绍请你来说一下awk的使用相关面试题,主要包含被问及请你来说一下awk的使用时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)作用: 样式扫描和处理语言。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 2)用法: awk [-F field-separator] 'commands' input-file(s