Java中的七大排序_1 插入排序
发布时间:2020-12-15 07:53:36 所属栏目:Java 来源:网络整理
导读:一:七种排序 插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序 二、排序思想(以非降序排列为例) 简单点说: 将待排元素分为有序区间和无序区间,并假设第一个元素已经有序。每次取出无序区间的第一个值记作key吧,将它与有序区间的元
一:七种排序
插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序 二、排序思想(以非降序排列为例)简单点说:将待排元素分为有序区间和无序区间,并假设第一个元素已经有序。每次取出无序区间的第一个值记作key吧,将它与有序区间的元素从后往前进行比较,大于等于有序区间最后一个数,就放后边当成新的有序区间的最后一个数;小于的话,就继续往前比较,直到找到一个比它还小的有序区间的数,并把key插入到该值的后边。 三、图示:以排18292415224为例1.将元素分为有序区间和无序区间,并假设第一个元素已经有序 2.key从无序区间第一个开始有序的下一个),key=8大于等于有序区间最后一个数,就放后边当成新的有序区间的最后一个数,接着进行下一步的key值比较定位 3.key=2,小于有序区间的最后一个数8,就继续往前比较,直到找到一个比它还小的有序区间的数,在该数之后做插入 4.先将插入位置之后的有序区间的元素从后往前依次向后移动一下,腾出空位,插入key 5.key=9,key>=8,成为新有序区间的最后一个数 6.key=2,key<9,向前遍历比较,直到找到一个小于等于2的数,在该数之后做腾位、再插入key=2 9.依次类推,最终将所有元素按非降序排号 四、代码实现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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |