美文网首页
数据结构——排序算法

数据结构——排序算法

作者: IT小分享 | 来源:发表于2020-09-03 09:31 被阅读0次

    欢迎关注转发点赞留言

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

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

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

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

    欢迎关注转发点赞留言

    相关文章

      网友评论

          本文标题:数据结构——排序算法

          本文链接:https://www.haomeiwen.com/subject/edlnsktx.html