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

网站开发工具链接服务器百度推广联系方式

网站开发工具链接服务器,百度推广联系方式,创可贴网站怎么做图片大全,广州地铁最新运营调整目录 前言 一、代码实现 二、时空复杂度 时间复杂度: 空间复杂度: 前言 建议:1.学习算法最重要的是理解算法的每一步,而不是记住算法。 2.建议读者学习算法的时候,自己手动一步一步地运行算法。 tips:希尔排序算…

目录

前言

一、代码实现

二、时空复杂度

时间复杂度:

空间复杂度:


前言

建议:1.学习算法最重要的是理解算法的每一步,而不是记住算法。

           2.建议读者学习算法的时候,自己手动一步一步地运行算法。

tips:希尔排序算法就是通过该算法衍生出来的,通过理解本算法可以为理解希尔排序打下基础。同时,本算法的逻辑简单。

直接排序算法,也称为选择排序(Selection Sort),是一种简单直观的排序算法。其基本思想是每一趟从待排序的数据元素中选择最小(或最大)的一个元素,将它与序列的第一个元素进行交换,然后再从剩余的元素中选择最小(或最大)的元素,与序列的第二个元素进行交换,如此循环,直到整个序列有序。总结就是,将无序元素与其前面的元素比较大小,以此来确定其位置,从而将其加入前面的有序的部分。

一、代码实现

#include <stdio.h>// 交换数组中两个元素的值
void swap(int *xp, int *yp) {int temp = *xp;*xp = *yp;*yp = temp;
}// 直接排序函数
void selectionSort(int arr[], int n) {int i, j, min_idx;// 选择排序的主循环for (i = 0; i < n-1; i++) {// 寻找在未排序部分中的最小元素的索引min_idx = i;for (j = i+1; j < n; j++)if (arr[j] < arr[min_idx])min_idx = j;// 将找到的最小元素与当前位置元素交换swap(&arr[min_idx], &arr[i]);}
}// 打印数组元素
void printArray(int arr[], int size) {for (int i = 0; i < size; i++)printf("%d ", arr[i]);printf("\n");
}int main() {int arr[] = {64, 25, 12, 22, 11};int n = sizeof(arr) / sizeof(arr[0]);printf("原始数组: \n");printArray(arr, n);// 调用直接排序算法selectionSort(arr, n);printf("\n排序后的数组: \n");printArray(arr, n);return 0;
}

在这段代码中,swap 函数用于交换数组中两个元素的值,而 selectionSort 函数实现了直接排序算法。主要的思路是在未排序的部分中找到最小元素的索引,然后与当前位置的元素进行交换,通过不断进行这样的操作,实现整个数组的排序。

二、时空复杂度

时间复杂度:

直接排序算法的时间复杂度主要由两层循环决定。

外层循环:外层循环的次数是 n-1,其中 n是数组的长度。这是因为在进行 n-1次选择后,剩下的最后一个元素已经有序了。

内层循环:内层循环用于在未排序的部分中寻找最小元素的索引。在最坏情况下,每次选择都需要遍历剩余未排序的元素。内层循环的次数是n,n-1,n-2,…,1。其平均时间复杂度为O(n^2)

综合考虑外层和内层循环(只要考虑n的次数大的复杂度),直接排序的时间复杂度为O(n^2)

平均/最好/最差时间复杂度均为O(n^2)

空间复杂度:

直接排序是一种原地排序算法,它只需要常数级别的额外空间来存储少量的辅助变量,如循环中的索引和临时变量。因此,直接排序的空间复杂度为 O(1),即常数级别的额外空间。

http://www.dt0577.cn/news/45577.html

相关文章:

  • 手机网站关键词优化aso榜单优化
  • 做网站 嵌入支付网络营销的渠道有哪些
  • 网站开发公司云鲸互创怎么联系网站运营
  • 地方生活门户网站长春网站优化页面
  • 做网站建设公司排名关键词歌词林俊杰
  • 做短视频必备的网站中文搜索引擎有哪些平台
  • 备案的域名做电影网站吗seo发外链工具
  • b2b网站整合营销seo常用工具
  • 网站主题及风格北京刚刚传来特大消息
  • 网站建设主要课程权重查询入口
  • 英文b2c网站建设西安网站seo公司
  • 平板电脑 做网站开发广州网站建设工作室
  • 怎么做网站的广告免费域名申请的方法
  • 环保设备网站怎么做哪有培训seo
  • 平面设计作品案例分析优化教程网下载
  • wordpress 站群注意东莞seo网络优化
  • 做网站 华普花园外贸网站推广
  • 网站设计赚钱吗下载百度地图2022最新版
  • 企业网站视频栏目建设方案实时新闻最新消息
  • 国外设计公司网站企业网站推广的方法有哪些
  • 江苏城乡和住房建设厅网站线上推广的渠道有哪些
  • 万网网站备案信息真实性核验单长沙做网络推广公司的
  • 网站设计制作的服务好不好个人免费自助建站网站
  • 好的素材下载网站百度营销推广靠谱吗
  • 网站开发工程师任职资格seo点击软件排名优化
  • 长沙知名网站网站推广怎么弄
  • 网络建设与运维技能大赛中职组短视频seo系统
  • 网站管理助手 伪静态如何创建一个平台
  • 做网站推广大概需要多少钱网站怎么注册
  • 江西奶茶加盟网站建设搜索引擎优化培训免费咨询