算法-二分查找详解[多语言实现]二分查找(Binary Search)是一种高效的查找算法,常用于有序数组或序列。根据循环条件和区间定义的不同,二分查找可以有多种写法,主要包括以下四种: 1. 闭区间 [left,right]搜索区间是闭区间 [left, right] 代码模板:c++: 1234567891011121314151617int binary_serach(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; // 定义闭区间 [left, right] while (left <= right) { // 区间不为空时继续查找 int middle = left + (right - left) / 2; if (nums[middle] == target) { return middle; } else if (nums[middle] < target) { le ...
Go开始1234567package mainimport "fmt"func main() { fmt.Println("hello world")} 123456789101112要运行这个程序,先将将代码放到名为 hello-world.go 的文件中,然后执行 go run$ go run hello-world.gohello world如果我们想将程序编译成二进制文件(Windows 平台是 .exe 可执行文件), 可以通过 go build 来达到目的。$ go build hello-world.go$ lshello-world hello-world.go然后我们可以直接运行这个二进制文件。$ ./hello-worldhello world 变量123456789101112131415161718192021package mainimport "fmt"func main() { // var 声明 1 个或者多个变量。 var a = " ...
数据结构课程设计交通查询系统设计 [问题描述] 今天铁路交通网络非常发达,人们在出差、旅游时,不仅关注交通费用,还关注里程和时间。请按照下图设计一个交通查询系统,能够满足旅客查询从任一个城市到另一个城市的最短里程、最低花费、最短时间、最少中转次数等问题。 [基本要求] 设计合适的数据结构和算法编写程序完成上述功能,并具有查询界面,能够按照下拉菜单选项进行选择查询。 Dijkstra写法: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361 ...
算法-排序详解[多语言实现]一.冒泡排序1.最常见的写法: 最基础的冒泡排序实现 c++: 12345678910void bubbleSort(vector<int>& arr) { int length = arr.size(); // 减少消耗 for (int i = 0;i < length - 1;i++) { for (int j = 0;j < length - 1 - i;j++) { if (arr[j] > arr[j + 1]) { swap(arr[j], arr[j + 1]); } } }} JavaScript: 12345678910function bubbleSort(arr) { let length = arr.length for(let i=0;i<length-1;i++) { for(let j=0;j<length-1-i;j++) ...
字符串一、字符串的基本定义与特性1. 定义方式 双引号:"hello" 单引号:'hello' 反引号(模板字符串):hello 2. 字符串的不可变性 字符串是不可变类型,一旦创建就无法更改其内容,只能生成新的字符串。 123let str = "hello";str[0] = "H"; // 无效console.log(str); // "hello" 3. 字符串与 Unicode JavaScript 使用 Unicode 编码,每个字符占用 2 个字节。 可以使用转义字符表示特殊字符,例如: 1let str = "Hello\u0041"; // "HelloA" 二、字符串的常用操作1. 字符串的长度 使用 .length属性获取字符串的长度: 12let str = "hello";console.log(str.length); // 5 2. 字符串访问 使用索引访问字符串中的字符: 12let st ...
数学罗马数字罗马数字是一种古老的数字表示方法,起源于古罗马,至今仍在一些特定场合被使用,比如钟表、书本章节、电影序列号等。罗马数字使用几个基本符号来表示不同的数值,这些符号包括: 基本罗马数字符号及对应值: 罗马数字 阿拉伯数字 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 罗马数字的书写规则: 重复表示加法:相同的数字连写,其值等于这些数字相加。例如: II = 1 + 1 = 2 III = 1 + 1 + 1 = 3 小数字在大数字右边表示加法:如 VI = 5 + 1 = 6,XV = 10 + 5 = 15。 小数字在大数字左边表示减法:如 IV = 5 - 1 = 4,IX = 10 - 1 = 9。 同一数字不能连续重复超过三次:例如,4 不写作 IIII,而是写作 IV;9 不写作 VIIII,而是写作 IX。 从左到右按数值从大到小排列,例如: LXVIII = 50 + ...
数据结构-实验四查找和排序算法实现1、各种排序算法的实现 用随机函数生成16个2位正整数(10~99),对同一组数据分别实现直接插入排序、 折半插入排序、希尔排序;冒泡排序、快速排序;选择排序、堆排序;二路归并排序; 基数排序等多种排序算法,输出排序中间过程、统计关键字的比较次数和记录的移动次 数。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 ...
2024第十五届蓝桥杯C/C++B组试题A 握手问题(本题总分:5分) 【问题描述】 小蓝组织了一场算法交流会议,总共有50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进,行一次握手(且仅有一次)。但有7个人,这7人彼此之间没有进行握手(但,这7人与除这7人以外的所有人进行了握手)。请问这些人之间一共进行了多,少次握手? 注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 123456789101112131415#include<iostream>//A握手问题using namespace std;int fact(int n)//用递归{ if (n == 0)return 0; return n + fact(n - 1);}int main(){ int a7 = 43 * 7;//这7 ...
数据结构-实验三图的操作与实现 利用图的邻接表和邻接矩阵存储结构设计并实现各种操作算法(任选一种存储结构 来实现算法)。 1、图的邻接表和邻接矩阵存储 建立下图的邻接表和邻接矩阵,并输出之。 12345678910graph LR 0 ---|28| 1 1 ---|16| 2 2 ---|12| 3 3 ---|22| 4 4 ---|25| 5 5 ---|10| 0 1 ---|14| 6 3 ---|18| 6 4 ---|24| 6 1.邻接矩阵12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include<iostream>using namespace std;#define max_vexs 100#define max_number 9999typedef struct Graph { char vexs[ma ...