C++基础教程
——
作业及参考答案全部汇总文档
节11算法基础阶段作业

最新版本V2.0
王道C++团队
COPYRIGHT ⓒ 2021-2024. 王道版权所有

基础题篇

Gn!

下面都是一些基础的语法、概念编程练习题。

手动实现三个简单排序算法

Gn!

请自己手动实现三个基础的排序算法:

然后给定一个int数组,实现将它从小到大进行排序。

参考代码:

选择排序代码实现:

冒泡排序代码实现:

插入排序代码实现:

以上。

手动实现希尔排序算法

Gn!

请手动实现希尔排序算法:

参考代码如下:

参考代码:

希尔排序的实现代码如下:

以上。

手动实现归并排序算法

Gn!

请手动实现归并排序算法:

如果学有余力,不妨尝试一下多种临时数组的方式:

1.局部变量数组

2.全局变量数组

3.堆数组

提交答案只需要使用其中一种即可。

参考代码如下:

参考代码:

归并排序实现代码如下:

以上。

手动实现快速排序算法

Gn!

请手动实现快速排序算法,包括单向分区以及双向分区:

参考代码如下:

参考代码:

单向分区快排算法的实现代码如下:

双向分区快排算法的实现代码如下:

以上。

手动实现堆排序算法

Gn!

请手动实现堆排序算法:

参考代码如下:

参考代码:

堆排序算法实现代码如下:

以上。

手动实现简单二分查找算法

Gn!

请手动实现简单二分查找算法,要求使用递归和循环迭代两种方式实现:

所谓简单二分查找,指的是利用二分查找算法,查找目标元素,只要找到目标元素即返回目标元素的下标。

参考代码如下:

参考代码:

递归实现简单二分查找:

循环迭代实现二分查找:

以上。

手动实现二分查找的变种

Gn!

基于循环迭代的实现方式,利用二分查找的算法思想,实现:

  1. 查找数组中最后一个与目标值相等的元素

  2. 查找数组中最后一个小于等于目标值的元素

参考代码如下:

参考代码实现如下:

查找数组中最后一个与目标值相等的元素,实现参考代码如下:

查找最后一个小于等于目标值的元素,实现参考代码如下:

以上。

利用二分查找思想改进插入排序

Gn!

在数据较多的情况下,使用插入排序会导致"旧手牌"序列比较长,此时若仍然相邻元素两两比较后移是比较耗时的,可以考虑使用"二分查找算法思想"进行改进。

请你实现这个改进。

参考代码如下:

参考代码实现如下:

利用二分查找,找到最后一个小于等于"新手牌"值的元素,这样就可以直接将它后面的所有元素后移一位,然后再它后面直接插入"新手牌"。

参考实现代码如下:

以上。

The End