Java中的七大排序_1插入排序-创新互联

一:七种排序

插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序

成都创新互联服务项目包括迁安网站建设、迁安网站制作、迁安网页制作以及迁安网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,迁安网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到迁安省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

二、排序思想(以非降序排列为例)

简单点说:将待排元素分为有序区间和无序区间,并假设第一个元素已经有序。每次取出无序区间的第一个值记作key吧,将它与有序区间的元素从后往前进行比较,大于等于有序区间最后一个数,就放后边当成新的有序区间的最后一个数;小于的话,就继续往前比较,直到找到一个比它还小的有序区间的数,并把key插入到该值的后边。
注意:我们在有序区间插入元素时,一定要提前空好位置在做插入操作,如果直接插入,会导致原来数据被覆盖而丢失。所以要先将插入位置之后的有序区间的元素从后往前依次向后移动一下,(从后往前,还是为了避免数据被覆盖)。这样操作后,就会将插入位置空出,此时,在将key插入

三、图示:以排18292415224为例

1.将元素分为有序区间和无序区间,并假设第一个元素已经有序
Java中的七大排序_1 插入排序
2.key从无序区间第一个开始有序的下一个),key=8大于等于有序区间最后一个数,就放后边当成新的有序区间的最后一个数,接着进行下一步的key值比较定位
Java中的七大排序_1 插入排序

3.key=2,小于有序区间的最后一个数8,就继续往前比较,直到找到一个比它还小的有序区间的数,在该数之后做插入
Java中的七大排序_1 插入排序
4.先将插入位置之后的有序区间的元素从后往前依次向后移动一下,腾出空位,插入key
Java中的七大排序_1 插入排序
5.key=9,key>=8,成为新有序区间的最后一个数
6.key=2, key<9, 向前遍历比较,直到找到一个小于等于2的数,在该数之后做腾位、再插入key=2
Java中的七大排序_1 插入排序
Java中的七大排序_1 插入排序
9.依次类推,最终将所有元素按非降序排号
Java中的七大排序_1 插入排序

四、代码实现

public static void insertSort2(int[] array) {//插入排序代码
for (int i = 0; i < array.length - 1; i++) {//循环的次数,也监控着每一轮开始key的位置
int key = array[i + 1];
int j;
for (j = i; j >= 0 && key < array[j]; j--) {//一边比较一边为key的插入腾空位
array[j + 1] = array[j];
}
array[j + 1] = key;
}
}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文名称:Java中的七大排序_1插入排序-创新互联
链接URL:http://myzitong.com/article/ceigii.html