数据结构——排序算法

2020-09-03  本文已影响0人  IT小分享

欢迎关注转发点赞留言

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

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

这次先分享插入排序原理介绍。插入排序流程是逻辑上把一个数组分为有序数组,无序数组。有序数组初始化值(原来数组下标为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

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

欢迎关注转发点赞留言

上一篇下一篇

猜你喜欢

热点阅读