排序系列 之 插入排序

avatar
作者
筋斗云
阅读量:0
  • !!!排序仅针对于数组哦
  • 本次排序是按照升序来的哦

介绍

  • 插入排序英文名为InsertSort

基本思路

  • 1、认为数组当中的第一个数值已经排好序了
  • 2、定义一个游标从第二个数值开始不断地向后进行遍历
  • 3、游标指向的数据插入已经排好序的数组中

代码

<!----java-----> public static void main(String[] args) {         int[] arr={10,2,3,8,1,9};         sort(arr);         System.out.println(Arrays.toString(arr));     }      public static void sort(int[] arr){         // 默认第一个已经排好序了,所以我们从第二个元素开始         for(int i=1;i<arr.length;i++){             // 定义游标j,依次从后往前遍历             for(int j=i;j>0;j--){                 // 前一个数比当前数小,交换                 if(arr[j-1]>arr[j]){                     int temp = arr[j];                     arr[j] = arr[j-1];                     arr[j-1] = temp;                 }             }         }     }  <!------------------------> 运行结果; [1, 2, 3, 8, 9, 10] 
<!----python-----> def insertSort(arr):     for i in range(1,len(arr)):         for j in range(i,0,-1):             if arr[j-1]>arr[j]:                 arr[j],arr[j-1] = arr[j-1],arr[j];     print(arr)  arr=[10,2,3,8,1,9]; insertSort(arr) <!------------------------> 运行结果; [1, 2, 3, 8, 9, 10] 

老规矩,上图

在这里插入图片描述

复杂度

  • 时间复杂度为:O(n²)
  • 空间复杂度为:O(1)
  • 它是稳定排序,意味着相等元素的相对顺序在排序后保持不变。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!