排序算法——插入排序 Yi3093sq

泛亚电竞

泛亚电竞

目录

🎨基本介绍

🎹算法思想

🏸实例

🎠思路分析

🪁代码实现

🛹算法性能分析

🚀时间复杂度

🛴空间复杂度

🛸稳定性


🎨基本介绍

插入式排序属于内部排序法,是排序排序对待排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的 。

🎹算法思想

插入排序(Insertion Sorting)的算法基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,在有序表中从后往前进行比较,将它插入到有序表中的适当位置,使之成为新的有序表 。

🏸实例

将101,插入34,119,1进行从小→大的排序

🎠思路分析

101,34,119,1

第一趟:此时有序表为101,无序表为:34,119,1

从后往前遍历有序表,将34和101进行比较,34<101,此时将101后移一个位置 。此时已经遍历完有序表中的排序排序所有元素,故将34插入在101的前面,即有序表的第一个位置,得到新的有序表:34,101

34,101,119,1

第二趟:从后往前遍历有序表,将119与34和101进行比较,发现119均大于两者。故将119直接插在101后面,即有序表的算法最后一个位置,得到新的有序表:34,101,119

34,101,119,1

第三趟:从后往前扫描有序表,1<119,故将119往后移一个位置;1<101,将101往后移一个位置;1<34,将34往后移一个位置 。此时已经遍历完有序表中的插入所有元素,故将1插入在34的前面,即有序表的第一个位置 。

此时所有元素已经完全有序:1,排序排序34,101,119

🪁代码实现

public static void main(String[] args) {int []arr={101,34,119,1};insertSort(arr);System.out.println("排序后的数组为:"+Arrays.toString(arr));}public  static  void  insertSort(int[]arr){if (arr==null||arr.length==1){return;}//从第二个元素开始,和前面的有序表进行比较for (int i=1;i<arr.length;i++){int temp=arr[i];//记录要插入的值,将待插入的值取出并保存在temp中,防止数据移动时该元素丢失int j=i-1;//从后往前进行遍历比较for (;j>=0;j--){if (arr[j]>temp){arr[j+1]=arr[j];//后移一个位置}else {arr[j+1]=temp;//直接将待插入的元素,插入在有序表的尾部break;}}arr[j+1]=temp;//遍历完有序表所有大于temp的元素后,将temp插入}}

 实现结果:

🛹算法性能分析

🚀时间复杂度

最坏情况:当待排序序列为逆序状态,首先遍历整个序列,之后一个一个地将待插入元素放在已排好序的序列最前面,之后的所有元素都需要向后移动一位,时间复杂度为O(n^2)

最好情况:当待排序序列为正序状态,则遍历完整个序列,当插入元素时,只比较一次就够了,所以时间复杂度为O(n)

 平均情况:当被插入的元素放在已排序的序列中间位置时,为平均情况,比较和移动的时间复杂度为O(n/2),所以总的时间复杂度依然为O(n^2)

🛴空间复杂度

空间复杂度为O(1)

🛸稳定性

当待插入元素与有序序列中比较的元素相等时,将待插入元素直接插入在该相等元素的后面 。所以,两个元素位置的算法前后顺序没有改变,故插入排序是稳定的

chatgpt免费软件,chatgpt api 免费接口,chatgpt 聊天机器人教程,chatgpt 指令大全,chatgpt app

排序算法——插入排序

黑帽SEO泛目录程序与ChatGPT

在数字化时代 ,搜索引擎优化(SEO)已经成为许多网站主的插入关注焦点 。黑帽SEO泛目录程序和ChatGPT是排序排序两种不同但有着相似目标的工具 。本文将介绍这两种工具的算法特点和作用 。

首先 ,插入黑帽SEO泛目录程序是排序排序一种以不恰当的方式提高网站排名的工具 。它通过创建大量重复内容的算法目录页面来吸引搜索引擎的注意。然而,插入这种方法在搜索引擎算法的更新下已经不再有效,并且可能导致网站被降权或封禁。因此 ,黑帽SEO泛目录程序已经逐渐被网站主弃用。

与之相反 ,ChatGPT是一种基于人工智能技术的自然语言处理工具。它使用大规模的语料库进行训练 ,可以生成与人类对话类似的文本回应 。ChatGPT可以被应用在各种场景中 ,如客服对话、文本摘要和创作助手等 。它能够生成具有逻辑性和连贯性的文本 ,对于提高用户体验和提供个性化服务具有重要意义 。

 

相关信息

(内容如有侵权,请联系我们删除) Copyright © 1995-2023 泛亚电竞 版权所有 粤ICP备13061979号