温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java数组怎么插入元素并快捷排序

发布时间:2021-04-28 10:18:44 来源:亿速云 阅读:177 作者:小新 栏目:编程语言

小编给大家分享一下java数组怎么插入元素并快捷排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Java的特点有哪些

Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1、从数组的第二个元素进行操作,如果发现其前面的元素比他大,就将其前面的元素往后挪,直到cur指向的元素大于或者等于他前一个元素,此时cur指向的位置就是待插入元素应该插入的位置。

static int[] insertSort2(int[] array){       int len = array.length;       for (int begin = 1; begin < len; begin++){           int cur = begin;           int tmp = array[cur];           while (cur > 0 && array[cur] < array[cur-1]){               array[cur] = array[cur-1];               cur--;           }           array[cur] = tmp;       }       return array;   }

2、通过二分查找减少了比较次数,即cmp函数的调用,还减少了swap函数的调用。更快的找到了当前元素应该插入的位置,然后再进行挪动,提高了效率。

static int[] insertSort3(int[] array){           int len = array.length;               for (int begin = 1; begin < len; begin++){               int v = array[begin];               int insertIndex = search(array,begin);               // 将 [insertIndex, begin) 范围内的元素往右边挪动一个单位               for (int i = begin; i > insertIndex; i--){                   array[i] = array[i-1];               }               array[insertIndex] = v;           }           return array;       }       static int search(int[] array, int index){           int begin = 0;           int end = index;           while(begin < end){               int mid = (begin+end) >> 1;               if (array[index] < array[mid]){                   end = mid;               }else{                   begin = mid+1;               }           }           return begin;   }

需要注意的是:使用了二分搜索后,只是减少了比较次数,但插入排序的平均时间复杂度依然是O(n^2)。

以上是“java数组怎么插入元素并快捷排序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节
推荐阅读:
  1. java数组排序
  2. 插入排序

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI