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

我想弄个网站电脑什么网站可以做长图攻略

我想弄个网站,电脑什么网站可以做长图攻略,用户冻结wordpress,淘宝网站后台怎么做0. 简介 插入排序(Insertion Sort) 是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常…

0. 简介       

        插入排序(Insertion Sort) 是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用 in-place 排序(即只需用到 O(1) 的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。


1. 插入排序的实现

插入排序的基本思想:

  1. 从第一个元素开始,该元素可以认为已经被排序;
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
  5. 将新元素插入到该位置后;
  6. 重复步骤2~5。

插入排序过程演示:

367e3c9d2d6d4004a720bba75ba79dab.gif


2. 插入排序时空间复杂度分析

插入排序的时间复杂度和空间复杂度如下:

  1. 时间复杂度:

    • 最坏情况(逆序):每次插入都需要移动元素,总共需要移动的次数较多,所以时间复杂度是 O(n^2)。
    • 最好情况(已排序):每次插入只需要比较一次,所以时间复杂度是 O(n)。
    • 平均情况:时间复杂度是 O(n^2)。
  2. 空间复杂度:

    • 插入排序只需要一个额外空间用于临时存储要插入的元素,所以空间复杂度是 O(1)。

总结:插入排序的平均和最坏情况时间复杂度都是 O(n^2),空间复杂度是 O(1)。

需要注意的是,插入排序适用于部分已排序的情况,这时其效率会相对较高。


3. 插入排序C语言代码

C代码实现:

#include <stdio.h>  void insertionSort(int arr[], int n) {  int i, key, j;  for (i = 1; i < n; i++) {  key = arr[i];  j = i - 1;  //将arr[0..i-1]中大于key的元素移动到当前位置之前的一个位置 while (j >= 0 && arr[j] > key) {  arr[j + 1] = arr[j];  j = j - 1;  }  arr[j + 1] = key;  }  
}  void printArray(int arr[], int n) {  int i;  for (i = 0; i < n; i++) {  printf("%d ", arr[i]);  }  printf("\n");  
}  int main() {  int arr[] = {12, 11, 13, 5, 6};  int n = sizeof(arr) / sizeof(arr[0]);  insertionSort(arr, n);  printArray(arr, n);  return 0;  
}

代码详解:

  1. void insertionSort(int arr[], int n) 函数定义了一个对整数数组 arr[] 进行插入排序的函数,其中 n 是数组的长度。
  2. for 循环中,从数组的第二个元素开始(索引为1),每一个元素都被视为需要插入到已排序子数组的新元素。key 存储了当前正在考虑的元素的值。
  3. while 循环用于移动所有大于 key 的已排序元素向右移动一位,以便为 key 提供空间。一旦找到 key 的正确位置或到达数组的开头,循环就会停止。然后,将 key 插入到正确的位置。
  4. printArray 函数用于打印已排序的数组。在 main 函数中,我们定义了一个需要排序的数组,并调用 insertionSort 函数进行排序。最后,打印已排序的数组。

4. 插入排序代码运行结果

代码运行结果:

f7ddfc2c5dca40b383151c15cfa754d2.png

 

http://www.yayakq.cn/news/313631/

相关文章:

  • wordpress站标签也打不开中国建设银行官网站企业网银下载
  • 博客类网站建设wordpress 退出登录
  • 北京工程建设交易信息网站杭州建设网官方网站
  • 烟台互网站建设公司名单湖南铁军工程建设有限公司官方网站
  • 软件公司网站模板下载网站系统 建设和软件岗位职责
  • 网站如何做抖音推广网站做防御
  • 网站建设的频道是什么wordpress禁止留言
  • 怎样做校园网站网站域名变了怎么查
  • 报名网站如何做wordpress阅读数随机
  • 直播视频网站如何做深圳建网站服务
  • 网站整体设计流程自己做公司的网站
  • 女孩子学做网站有前途吗怎么注册公司最好
  • 张家港做网站收费标准搜狐快站官网
  • 汕尾网站seo代做设计网站好
  • 做网站如何推广买量沈阳网站建设联系方式
  • 网站平台建设技术基础黑彩网站怎么做
  • 自媒体网站建设建设银行网站用户名忘了怎么办
  • 网站文章被采集深圳网站建设商
  • 做公众号封面图的网站wordpress主题的安装教程
  • wix建站是免费的吗网站做建筑三维图
  • 怎么做娱乐网站h5网站的好处
  • 家具网站建设的前景分析哪里建设网站
  • 做公司网站,哪个程序用的多可信赖的南昌网站建设
  • 西青网站开发wordpress添加新浪微博
  • 龙华网站制作公司电气工程师报考条件
  • 网站用户体验模型三室一厅装修效果图
  • 商城网站 不易优化服装网站建设前景分析
  • 关于信用体系建设的网站重庆seo计费管理
  • 前端只是做网站吗东莞网络优化
  • 接帮人家做网站的网站广西电力工程建设有限公司网站