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

株洲专业网站建设网站怎么优化排名

株洲专业网站建设,网站怎么优化排名,wordpress3.8模板,图案生成器目录 1 选择排序 2 排序原理 3 排序步骤 4 代码示例 4-1 C#代码示例 4-2 C代码示例 1 选择排序 选择排序(Selection Sort)是一种简单直观的排序算法,它的基本思想是每一轮从待排序的数据元素中选出最小(或最大&#xff09…

目录

 1  选择排序

 2  排序原理

 3  排序步骤

 4  代码示例

 4-1  C#代码示例

 4-2  C++代码示例


 1  选择排序

选择排序(Selection Sort)是一种简单直观的排序算法,它的基本思想是每一轮从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

 2  排序原理

选择排序的核心原理是通过不断地选择最小(或最大)元素并将其放置到合适的位置,逐步构建有序序列。具体来说,它会将数组分为已排序部分和未排序部分,初始时已排序部分为空,未排序部分为整个数组。每一轮排序会从未排序部分中找出最小(或最大)的元素,然后将其与未排序部分的第一个元素交换位置,这样就使得已排序部分的长度增加 1,未排序部分的长度减少 1,重复这个过程直到未排序部分为空。

 3  排序步骤

下面以升序排序为例说明选择排序的步骤:

  1. 初始状态:给定一个包含 n 个元素的数组 arr,初始时整个数组都是未排序部分。
  2. 第一轮选择
    • 从数组的第一个元素开始,遍历整个数组,找出最小的元素。
    • 记录最小元素的索引。
    • 将最小元素与数组的第一个元素交换位置。此时,数组的第一个元素已经排好序,已排序部分包含 1 个元素,未排序部分包含 n - 1 个元素。
  3. 第二轮选择
    • 从数组的第二个元素开始,遍历剩余的未排序部分,找出最小的元素。
    • 记录最小元素的索引。
    • 将最小元素与数组的第二个元素交换位置。此时,数组的前两个元素已经排好序,已排序部分包含 2 个元素,未排序部分包含 n - 2 个元素。
  4. 重复选择过程:重复上述步骤,直到未排序部分只剩下一个元素。此时,整个数组就已经排好序。

 4  代码示例

 4-1  C#代码示例
using System;namespace ConsoleApplication1
{internal class Program{private static void SelectionSort(int[] arr){if (arr == null || arr.Length < 2) return;for (int i = 0; i < arr.Length - 1; i++){int minIndex = i;for (int j = i + 1; j < arr.Length; j++)minIndex = arr[j] < arr[minIndex] ? j : minIndex;Swap(arr,i,minIndex);}}private static void Swap(int[] arr, int i, int j){if (i!= j)      {arr[i] ^= arr[j];arr[j] = arr[i] ^ arr[j];arr[i] ^= arr[j];}}public static void Main(string[] args){int[] arr = { 2, 5, 7, 9, 3, 1, 4, 6, 8 };SelectionSort(arr);foreach (var value in arr)Console.WriteLine(value);}}
}

运行结果:

 4-2  C++代码示例
#include <iostream>
#include <vector>// 交换向量中两个位置元素的函数
void Swap(std::vector<int>& arr, int i, int j) {if (i != j) {arr[i] ^= arr[j];arr[j] = arr[i] ^ arr[j];arr[i] ^= arr[j];}
}// 选择排序函数
std::vector<int> SelectionSort(std::vector<int> arr) {if (arr.size() < 2) {return arr;}for (size_t i = 0; i < arr.size() - 1; ++i) {size_t minIndex = i;for (size_t j = i + 1; j < arr.size(); ++j) {if (arr[j] < arr[minIndex]) {minIndex = j;}}Swap(arr, static_cast<int>(i), static_cast<int>(minIndex));}return arr;
}int main() {std::vector<int> arr = { 2, 5, 7, 9, 3, 1, 4, 6, 8 };arr = SelectionSort(arr);for (int value : arr) {std::cout << value << std::endl;}return 0;
}

运行结果:

http://www.cadmedia.cn/news/5614.html

相关文章:

  • 黄村网站建设网络营销文案策划
  • 公司的网站建设一般需要多少费用百度官网登录入口
  • 郑州网站推广外包网络营销怎么做
  • wordpress屏蔽功能org深圳seo推广公司
  • 沈阳建站模板快速排名优化推广手机
  • 123推广优化网站排名
  • 网站制作app全国各城市疫情搜索高峰进度
  • 网站里做任务seo网络优化推广
  • 深圳网站建设服务哪些便宜网络广告案例
  • 嘉兴外贸网站建设seo外包公司多少钱
  • 河北建设工程招标投标协会网站谷歌香港google搜索引擎入口
  • 网站新闻审核怎么做百度旗下推广平台有哪些
  • u nas 建设网站保定seo推广公司
  • 网站推广工具 刷链接谷歌下载
  • 织梦如何做淘宝客网站app推广软件
  • 怎样在外贸网站上做土特产上海哪家seo公司好
  • 高端的响应式网站建设公司bt磁力狗
  • 现在建设网站赚钱吗网络推广要求
  • 西安互联网公司集中在哪里合肥网站优化seo
  • 北京西站咨询服务电话刷僵尸粉网站推广
  • 网站集约化建设优点谷歌外贸
  • 玉树营销网站建设公司广告推广方式
  • h5制作素材seo广告优化多少钱
  • 域名购买万网论坛如何做seo
  • 资讯网站如何做聚合关键词优化资讯
  • 商城类网站建设报价seo基础教程使用
  • 昆明做网站哪家公司好python培训
  • 管理网站怎么做北京新闻最新消息
  • 商务网站建设与维护试题网站制作多少钱
  • 如何建立一个网站链接的文档青岛seo百科