📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 12 月 2 日 |问题 19(1)

📅  最后修改于: 2023-12-03 15:10:16.650000             🧑  作者: Mango

程序员必知必会——UGC-NET CS 2017 年 12 月 2 日

问题 19
题目描述

下面哪个选项是实现不太可能用排序解决的

  • A. 在一个无序字节数组中查找中位数
  • B. 在一个有序整数数组中查找中位数
  • C. 从一个无序链表中删除重复节点
  • D. 在一个无序整数数组中查找第 k 小的元素
答案

答案为 C。

分析

A 选项可以使用排序,将数组排序后,中间的元素就是中位数。

B 选项可以使用二分查找法,直接定位到中位数。

D 选项可以使用快速选择算法,与快速排序类似,但是只对需要的那一边进行排序。

C 选项中的“无序”是难点,如果是有序的,那么可以使用双指针来遍历链表,判断当前节点和下一个节点是否相同,如果相同则删除。但是无序链表中的重复节点无法直接定位,需要使用哈希表来存储已遍历过的节点值,进行比较和删除。

结论

这道题目考察了程序员对于排序算法以及其他计算机基础算法的掌握程度,同时对于对于不同问题解决方法的熟悉度。不同的问题需要不同的解决方法,程序员需要不断学习和提高自己的能力,才能在实际工作中应对复杂的问题。