数据结构——排序算法

tech2022-09-21  72

欢迎关注转发点赞留言

数据结构研究排序算法有何意义?排序算法数据库底层用的最多了。实际工作中排序在数据库高频出现,最常用有按时间升降排序等等。不过这些排序只需通过数据库排序命令就可完成,不用自个去整。

数据结构排序分为内部排序(排序在内存完成),外部排序( 数据太多无法全部加载到内存,需要借助外部存储)。内部排序分为插入排序(包括直接插入排序,希尔排序),交换排序(简单选择排序,堆排序),选择排序(冒包括泡排序,交换排序),归并排序,基数排序。

这次先分享插入排序原理介绍。插入排序流程是逻辑上把一个数组分为有序数组,无序数组。有序数组初始化值(原来数组下标为0的值),取出无序数组的第一个值(原来数组的第二个值)与有序数组值比较 。当有序数组的值比无序数组值大,用临时变量把有序数组的值存起来,把无序数组值传入到有序数组下标为0位置中,无序数组位置存放临时变量。

插入排序示意图

public static void sort(int[] arr){ //10 19 2 2 2 int j; for (int i=1;i<arr.length;i++){ int noOrderVal=arr[i];//待插入有序数组的值 int orderIndex=i-1;//有序数组最后一值 for( j=orderIndex;j>=0&&noOrderVal<arr[j];j--){ arr[j+1]=arr[j];//把数值大的往后移动 } arr[j+1]=noOrderVal;//待插入有序数组位置 print(arr); } } 传入{55,110,12,22,32} 打印结果 55 110 12 22 32 12 55 110 22 32 12 22 55 110 32 12 22 32 55 110

大家说说这种插入排序算法性能怎样?

欢迎关注转发点赞留言

 

最新回复(0)