简单插入排序(Insertion Sort)——插入类排序法(Java实现)
来源:互联网 发布:听歌软件免费 编辑:程序博客网 时间:2024/06/05 23:05
所谓插入排序,就是将无序序列中的各个元素插入到已经有序的线性表中。
在线性表中,只包含第一个元素的子表显然可以看作有序表。接下来,我们需要将第2个开始和以后的每一个元素插入到只包含第一个元素的子表中。我们假设将第j个元素进行插入,j-1之前的元素都已经有序。插入过程如下:设temp = 第j个元素。从有序子表的最后一个元素(j-1)开始,依次向前(--)与temp进行比较,如果前者大于后者,将大于temp的元素都向后移动一个位置,直到不大于temp的元素位置。最后将temp插入到移出的空位上。这样线性表中的j长度就排序完毕了,同理进行下一个元素的插入排序。*插入类排序法的效率与初始排序状态有关。最坏情况下,简单插入排序需要比较n(n-1)/2次,最坏时间复杂度为O(n²)
public class SimpleInsertionSort { public static void main(String args[]){ int arr[] = {10,5,6,7,1,2,4}; simpleinsertsort(arr); for(int a : arr) System.out.print(a+","); } public static void simpleinsertsort(int arr[]){ //从数组的第二个元素开始查找 for(int i = 1 ; i < arr.length ; i++){ int j; int temp = arr[i]; //将元素与前一个元素进行比较,从后往前,将小的元素放在前面。 for(j = i ; j > 0 && temp < arr[j-1] ; j--){ //注意比较条件的顺序。 用temp是因为,arr[i]在变化。 arr[j] = arr[j-1]; } arr[j] = temp; //将arr[i]按照顺序插入到j位置。 } }}
阅读全文
0 0
- 简单插入排序(Insertion Sort)——插入类排序法(Java实现)
- 【排序算法】 插入排序 insertion sort(插入类排序)
- Java 插入排序(Insertion Sort)
- 插入排序(insertion sort)
- 插入排序(insertion sort)
- 插入排序(Insertion Sort)
- 插入排序(Insertion-sort)
- 插入排序(insertion sort)
- 插入排序(insertion sort)
- 插入排序(Insertion Sort)
- 插入排序(INSERTION-SORT)
- Insertion Sort(插入排序)
- Insertion Sort(插入排序)
- 直接插入排序算法(Straight Insertion Sort) Java实现
- 排序算法(一)—插入排序(Insertion sort)
- 算法排序--插入排序(insertion sort)
- 排序算法---插入排序(Insertion Sort)
- 1.插入排序—直接插入排序(Straight Insertion Sort)
- 链表-->增-->删-->查-->改-->排序
- 《解析深度学习:语音识别实践》读书总结
- 2656: [Zjoi2012]数列(sequence)
- 关键词private
- Linux 压缩解压缩命令汇总
- 简单插入排序(Insertion Sort)——插入类排序法(Java实现)
- 菜鸟学习计划
- 作为产品经理,常见的这四种产品需求你是怎么处理的呢?
- Groovy的boolean值
- Qt实现画饼图
- Windows & Linux 对拍
- java.lang.NoSuchMethodError: org.hibernate.internal.CoreMessageLogger.debugf(Ljava/lang/String;I)V
- 【洛谷1032 】【CJOJ1711】【NOIP2002】字串变换
- 使用ProGround混淆工具混淆jar包