当前位置: 首页 > news >正文

长沙网站建设+个人吉林seo基础知识

长沙网站建设+个人,吉林seo基础知识,2022年国际十大新闻,wordpress php7 兼容以下是C的一些经典算法: 一、排序算法 冒泡排序(Bubble Sort) 原理: 它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换…

以下是C++的一些经典算法:
在这里插入图片描述

一、排序算法

  1. 冒泡排序(Bubble Sort)
    • 原理
      • 它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
    • 示例代码
#include <iostream>
void bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}
int main() {int arr[] = {5, 4, 3, 2, 1};int n = sizeof(arr)/sizeof(arr[0]);bubbleSort(arr, n);for (int i = 0; i < n; i++) {std::cout << arr[i] << " ";}return 0;
}

在这里插入图片描述

  1. 快速排序(Quick Sort)
    • 原理
      • 它采用了分治的策略。首先选择一个基准元素,通常是数组的第一个元素。然后将数组分为两部分,小于基准的元素放在左边,大于基准的元素放在右边。接着对左右两部分分别进行快速排序,直到整个数组有序。
    • 示例代码
#include <iostream>
int partition(int arr[], int low, int high) {int pivot = arr[low];int i = low - 1, j = high + 1;while (true) {do {i++;} while (arr[i] < pivot);do {j--;} while (arr[j] > pivot);if (i >= j) return j;int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
}
void quickSort(int arr[], int low, int high) {if (low < high) {int pi = partition(arr[], low, high);quickSort(arr, low, pi);quickSort(arr, pi + 1, high);}
}
int main() {int arr[] = {5, 4, 3, 2, 1};int n = sizeof(arr)/sizeof(arr[0]);quickSort(arr, 0, n - 1);for (int i = 0; i < n; i++) {std::cout << arr[i] << " ";}return 0;
}
  1. 归并排序(Merge Sort)
    • 原理
      • 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。它将一个数组分成两个子数组,对每个子数组进行排序,然后将排序好的子数组合并成一个最终的排序数组。
    • 示例代码
#include <iostream>
void merge(int arr[], int l, int m, int r) {int n1 = m - l + 1;int n2 = r - m;int L[n1], R[n2];for (int i = 0; i < n1; i++)L[i] = arr[l + i];for (int j = 0; j < n2; j++)R[j] = arr[m + 1 + j];int i = 0, j = 0, k = l;while (i < n1 && j < n2) {if (L[i] <= R[j]) {arr[k] = L[i];i++;} else {arr[k] = R[j];j++;}k++;}while (i < n1) {arr[k] = L[i];i++;k++;}while (j < n2) {arr[k] = R[j];j++;k++;}
}
void mergeSort(int arr[], int l, int r) {if (l < r) {int m = l+(r - l)/2;mergeSort(arr, l, m);mergeSort(arr, m + 1, r);merge(arr, l, m, r);}
}
int main() {int arr[] = {5, 4, 3, 2, 1};int n = sizeof(arr)/sizeof(arr[0]);mergeSort(arr, 0, n - 1);for (int i = 0; i < n; i++) {std::cout << arr[i] << " ";}return 0;
}

在这里插入图片描述

二、搜索算法
在这里插入图片描述

  1. 线性搜索(Linear Search)
    • 原理
      • 线性搜索是一种简单的搜索算法,它从数组的第一个元素开始,逐个检查每个元素,直到找到目标元素或者遍历完整个数组。
    • 示例代码
#include <iostream>
int linearSearch(int arr[], int n, int key) {for (int i = 0; i < n; i++) {if (arr[i] == key)return i;}return -1;
}
int main() {int arr[] = {1, 3, 5, 7, 9};int n = sizeof(arr)/sizeof(arr[0]);int key = 5;int result = linearSearch(arr, n, key);if (result == -1)std::cout << "元素未找到";elsestd::cout << "元素在索引 " << result << " 处找到";return 0;
}

在这里插入图片描述

  1. 二分搜索(Binary Search)
    • 原理
      • 二分搜索要求数组是有序的。它首先比较目标元素和数组中间元素的大小。如果目标元素等于中间元素,则返回中间元素的索引。如果目标元素小于中间元素,则在数组的左半部分继续搜索;如果目标元素大于中间元素,则在数组的右半部分继续搜索。这个过程不断重复,直到找到目标元素或者确定目标元素不存在。
    • 示例代码
#include <iostream>
int binarySearch(int arr[], int l, int r, int key) {while (l <= r) {int mid = l+(r - l)/2;if (arr[mid] == key)return mid;else if (arr[mid] < key)l = mid + 1;elser = mid - 1;}return -1;
}
int main() {int arr[] = {1, 3, 5, 7, 9};int n = sizeof(arr)/sizeof(arr[0]);int key = 5;int result = binarySearch(arr, 0, n - 1, key);if (result == -1)std::cout << "元素未找到";elsestd::cout << "元素在索引 " << result << " 处找到";return 0;
}

在这里插入图片描述

三、图算法

  1. 广度优先搜索(Breadth - First Search,BFS)
    • 原理
      • 广度优先搜索是一种用于遍历或搜索图(或树)的算法。它从给定的起始顶点开始,首先访问起始顶点的所有邻接顶点,然后再访问这些邻接顶点的邻接顶点,以此类推,直到遍历完整个图或者找到目标顶点。通常使用队列来实现。
    • 示例代码(以简单的图表示为例)
#include <iostream>
#include <queue>
#include <vector>
void bfs(std::vector<std::vector<int>>& graph, int start) {int n = graph.size();std::vector<bool> visited(n, false);std::queue<int> q;visited[start] = true;q.push(start);while (!q.empty()) {int vertex = q.front();q.pop();std::cout << vertex << " ";for (int neighbor : graph[vertex]) {if (!visited[neighbor]) {visited[neighbor] = true;q.push(neighbor);}}}
}
int main() {std::vector<std::vector<int>> graph = {{1, 2},{0, 3, 4},{0, 4},{1},{1, 2}};bfs(graph, 0);return 0;
}

在这里插入图片描述

编程是一场与自我之间的战斗,也是一场与世界之间的战斗。

http://www.hkea.cn/news/297689/

相关文章:

  • 武汉工业网站制作百度人工服务热线24小时
  • 新闻头条最新消息今日头条站长之家seo综合
  • app与网站宁波seo网络推广渠道介绍
  • 国外学做咖啡的网站百度高级搜索网址
  • 建网站开源代码游戏推广怎么找玩家
  • 莱州哪里有做网站的浙江网站建设平台
  • ps网站设计与制作免费推广seo
  • 网站查询功能怎么做关键词搜索量怎么查
  • 付费网站推广网站优化包括哪些内容
  • 在日本做色情网站广州seo外包
  • 最棒的网站建设考研最靠谱的培训机构
  • 广州建设企业网站黑河seo
  • 招商网站建设性价比高seo排名优化的
  • 产品网站怎么做的长沙正规关键词优化价格从优
  • 怎样查询江西省城乡建设厅网站杭州seo网
  • 网站建设空间是指什么软件网站优化最为重要的内容是
  • 做美工要开通什么网站的会员呢新网站友链
  • 网站集约化建设推进情况推广app赚钱
  • 番禺大石做网站域名污染查询网站
  • 长沙市在建工程项目免费seo快速排名工具
  • 南宁定制网站制作电话图片外链生成工具
  • 哪些网站做的海报比较高大上百度客服电话是多少
  • 菏泽网站建设电话常州seo外包
  • 做木皮的网站裂变营销五种模式十六种方法
  • 精美 企业网站模板微信软文推广怎么做
  • 怎么建立一个网站里面可以查询资料百度权重域名
  • 网站建设顺序镇江交叉口优化
  • 低价企业网站搭建软文新闻发布网站
  • 创造与魔法官方网站做自己喜欢的事seo视频
  • 淘宝联盟推广网站怎么做吉安seo招聘