algorithms-2.1 Elementary Sorts

2023-11-04 04:40

本文主要是介绍algorithms-2.1 Elementary Sorts,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Elementary Sorts

这一节讲的是一些基础的排序算法,包括选择排序,插入排序,希尔排序
这是这一章里面一个实现一种排序算法的类的模板API:

这里写图片描述

Selection Sort

定义:First, find the smallest item in the array and exchange it with the first entry (itself if the first entry is already the smallest). Then, find the next smallest item and exchange it with the second entry. Continue in this way until the entire array is sorted. This method is called selection sort because it works by repeatedly selecting the smallest remaining item.

实现:
这里写图片描述

Insertion Sort

定义:
The algorithm that people often use to sort bridge hands is to consider the cards one at a time, inserting each into its proper place among those already considered (keeping them sorted). In a computer implementation, we need to make
space to insert the current item by moving larger items one position to the right, before inserting the current item into the vacated position.

实现:
这里写图片描述

Shell Sort

定义:
The idea is to rearrange the array to give it the property that taking every hth entry(starting anywhere) yields a sorted subsequence. Such an array is said to be h-sorted. Put another way, an h-sorted array is h independent sorted subsequences, interleaved together. By h-sorting for some large values of h, we can move items in the array
long distances and thus make it easier to h-sort for smaller values of h. Using such a procedure for any sequence of values of h that ends in 1 will produce a sorted array
主要是定义一个H序列(如何产生没有一个固定的结论),针对每个H序列使用插入排序(以H为步长,相当于对插入排序步长为1做出了对应的优化)

实现:
这里写图片描述

这篇关于algorithms-2.1 Elementary Sorts的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/343302

相关文章

【2.1 深度学习中的感知机是什么】

2.1 深度学习中的感知机是什么 深度学习是机器学习的一个分支,它模拟人脑的工作方式来处理数据,尤其是通过神经网络的结构来自动提取数据的特征并进行分类、回归或其他复杂的任务。在深度学习的早期发展中,许多基础概念和模型为后续的复杂网络奠定了基础。其中,**感知机(Perceptron)**是一个非常重要的基础模型,它实际上是神经网络和深度学习的前身之一。 感知机的基本概念 感知机是一种二分

【AI大模型应用开发】2.1 Function Calling连接外部世界 - 入门与实战(1)

Function Calling是大模型连接外部世界的通道,目前出现的插件(Plugins )、OpenAI的Actions、各个大模型平台中出现的tools工具集,其实都是Function Calling的范畴。时下大火的OpenAI的GPTs,原理就是使用了Function Calling,例如联网检索、code interpreter。 本文带大家了解下Function calling,看

Study Plan For Algorithms - Part24

1. 包含min函数的栈 定义栈的数据结构,要求在该类型中实现一个 min 函数,能够获取栈的最小元素。在该栈中,调用 min、push 以及 pop 函数的时间复杂度均为 O (1)。 方法: class MinStack:def __init__(self):self.stack = []self.min_stack = [float('inf')]def push(self, x):sel

2.1ceph集群部署准备-硬件及拓扑

硬件配置及建议 时至今日,ceph可以运行在各种各样的硬件平台上,不管是传统的x86架构平台(intel 至强系列、基于amd的海光系列等),还是基于arm的架构平台(比如华为鲲鹏),都可以完美运行ceph集群,展现了其强大的适应能力。 ceph的不同组件对硬件的需求有些许不同,下面是官方推荐的硬件要求: 组件资源最低配置要求OSD处理器最少1 core每200-500 MB/s最少1 co

torch.backends.cudnn.benchmark和torch.use_deterministic_algorithms总结学习记录

经常使用PyTorch框架的应该对于torch.backends.cudnn.benchmark和torch.use_deterministic_algorithms这两个语句并不陌生,在以往开发项目的时候可能专门化花时间去了解过,也可能只是浅尝辄止简单有关注过,正好今天再次遇到了就想着总结梳理一下。 torch.backends.cudnn.benchmark 是 PyTorch 中的一个设置

TokuDB7.5.7-2.1使用TokuDB的系统和硬件需求v1

1 操作系统需求 TokuDB到目前位置只支持64位的Linux系统(所以现在不支持在window上编译运行) 2 硬件需求 内存:至少1G;如果想较好性能,建议2G以上。 外存:建议为数据目录(tokudb_data_dir)和日志目录(tokudb_log_dir)配置足够大的存储空间。

Study Plan For Algorithms - Part21

1. 二叉树的镜像 输入一个二叉树,输出它的镜像。 方法一: class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef mirrorTree(root):if not root:return Nonetemp, left,

General Algorithms - Graph

BFS Red Knights Shortest Path - World CodeSprint 12 - DFS Even TreeRoads and Libraries MST Kruskal MST Really Special Subtree A BFS Red Knight’s Shortest Path - World CodeSprint

个人旅游网(2.1)——使用阿里云在springboot项目中发送短信

文章目录 一、背景介绍二、详细步骤2.1、申请资质2.2、申请签名2.3、申请模板2.4、申请accessKey秘钥对2.5、SDK的使用[!]2.5.1、项目中导入依赖2.5.2、发短信的工具类 一、背景介绍 验证码发送背后的功能原理图: 想要在项目中实现上述发送验证码的功能,就需要了解以下步骤。 二、详细步骤 阿里云短信服务 一个短信一般分成成两部分:签名、模板

2.1 程序设计语言与概述

以下程序设计语言中,( )更适合用来进行动态网页处理。 A. HTML B. LISP C. PHP D. JAVA/C++ 正确答案是 C。 解析 HTML:静态网页 LISP:一种基于入演算的函数式编程语言 PHP:混合了C、Java、Perl以及PHP自创的语法。 它可以比CGl或者Perl更快速地执行动态网页。 引用调用方式下进行函数调用,是将( )。 A. 实参的值传递给形参