插入排序法小例子

简介: 插入排序法小例子

插入排序方法类


    public void sort(int arr[]){
        for(int i=1;i<arr.length;i++){
            int insertVal=arr[i];
                //insertVal是准备用于与前一个数比较的数
            int index=i-1;
            while(index>=0&&insertVal<arr[index])
            {
                //上面的判断思想是,先确认index在i-1过后大于等于0;
                //让后让数组里的i 与 i-1 ,就是前后俩数去比较,现在是如果后面的数小与前面的数的情况
                arr[index+1]=arr[index];
                index--;
            }
            //如果前面while的条件不匹配,也就是说后面插入的数比前面一个大
            arr[index+1]=insertVal;
        }
    }

算法思想:


①把数组里面的无序数中的第一个index=0的数,默认当做一个序列队伍;


②然后定义一个数insertVal,取出的值为index=0后面的一个数;


③将两者比较,


如果insertVal比最早的那个数大,那么就直接让这个数的index+1,那么就是直接排在比较数后面了;


如果insertVal比最早的那个数小,那么就先将最早的数的index先往后以一位,即+1,等数值也跟着定值后,index再减一;再将insertVal的index往左以一位,即-1,;这样就可以达到两个数从小到大交换位置排序。


以上叙述是简单说明下。

相关文章
|
7月前
|
算法 C语言
数据结构和算法——桶排序和基数排序(图示、伪代码、多关键字排序,基数排序代码)
数据结构和算法——桶排序和基数排序(图示、伪代码、多关键字排序,基数排序代码)
59 0
|
存储 算法 搜索推荐
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2
300 0
|
算法 搜索推荐 Shell
Shell编程之数组排序算法(冒泡排序、直接选择排序、反转排序)
1、数组排序(使用tr、sort、for) 操作步骤; 使用tr命令将数组内每个元素之间的空格替换为换行符; 之后使用sort命令按从小到大重新排序; 最后使用for循环遍历排序后的元素值。
496 0
|
存储 人工智能 算法
【快速排序、归并排序、整数&浮点数二分查找】思路讲解及代码实现
用一篇Blog来讲解下最近学到的快速排序,归并排序,二分查找等处理数据的方式,为日后的刷题打下坚实的基础。
135 0
|
存储 算法 搜索推荐
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)1
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)1
243 0
力扣83删除排序链表中的重复元素:代码实现+思路分析+方法总结(快慢指针法&递归)
力扣83删除排序链表中的重复元素:代码实现+思路分析+方法总结(快慢指针法&递归)
68 0
力扣82删除排序链表中的重复元素 II:思路分析+代码实现+方法总结(三指针法&快慢指针法【双指针】&递归法)
力扣82删除排序链表中的重复元素 II:思路分析+代码实现+方法总结(三指针法&快慢指针法【双指针】&递归法)
83 0
|
Java C语言 C++
数据结构之排序【快速排序和归并排序的非递归代码实现及分析】
数据结构之排序【快速排序和归并排序的非递归代码实现及分析】

热门文章

最新文章