数据结构——排序算法

欢迎关注转发点赞留言

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

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

这次先分享插入排序原理介绍。插入排序流程是逻辑上把一个数组分为有序数组,无序数组。有序数组初始化值(原来数组下标为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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值