java实现直接插入排序
来源:互联网 发布:蜘蛛池平台源码 编辑:程序博客网 时间:2024/05/16 13:54
上一篇搞定了直接选择排序,现在来看直接插入排序,和直接选择排序相比,直接插入排序属于插入排序类型的算法,直接插入排序算法思想:
1.首先插入排序需要将数组分为左右两个部分,左边部分为有序,右边部分为无序的,将无序的第一个元素和有序部分的元素比较,从右到左的顺序比较,直到找到合适的位置,插入这个元素;
2.排序开始时,将需要排序元素的第一个作为有序的,依次变为两个有序、三个有序…有序的左边的元素会越来越多,右边无序的越来越少,直到所有元素都有序。
直接插入排序算法代码:
package dataStructures;import java.util.Scanner;/** * 类说明 * @author jiang * @date 创建时间:2014年10月6日 下午10:32:54 *///java实现直接插入排序public class DirectInsertSort {public void directInsertSort(int[] str){int key = 0; //定义一个key用来存储需要插入的值for (int i = 1; i < str.length; i++) {key = str[i]; //从第二个元素开始,将数组分为左边有序,右边无序int j = i-1; while(j>=0&&str[j]>key){str[j+1] = str[j]; //从索引为i的元素开始从右到左比较j--; } //当j数值小于0或者key==str[i]找到插入位置时循环结束str[j+1] = key; //将key插入准确的位置}}public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个数组:");String s1 = scanner.nextLine();String[] s2 = s1.split(" ");int[] str = new int[s2.length];for (int i = 0; i < str.length; i++) {str[i] = Integer.valueOf(s2[i]);}DirectInsertSort dis = new DirectInsertSort();dis.directInsertSort(str);System.out.println("排序后数组为:");for (int i = 0; i < str.length; i++) {System.out.print(str[i]+" ");}scanner.close();}}
程序运行结果:
请输入一个数组:
25 12 65 35 2 65 8 9 1 0
排序后数组为:
0 1 2 8 9 12 25 35 65 65
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:稳定
0 0
- 插入排序--直接插入排序[Java实现]
- 插入排序----直接插入排序----java实现
- 直接插入排序java实现
- Java实现直接插入排序
- java实现直接插入排序
- 直接插入排序---java实现
- java实现直接插入排序
- 直接插入排序 :Java实现
- 直接插入排序----java实现
- java实现直接插入排序
- java 实现直接插入排序
- 直接插入排序 java实现
- Java实现直接插入排序
- 直接插入排序 java实现
- 直接插入排序-java实现
- Java实现直接插入排序
- Java实现直接插入排序
- java实现直接插入排序
- 在solaris上使用rsync(1):实现两个server之间的文件传输
- LeetCode-Maximum Product Subarray
- 配置Tomcat(绿色版)
- 强大的数据访问助手——ADO.NET
- 题目1156:谁是你的潜在朋友 题目12
- java实现直接插入排序
- git 如何创建你自己的Git服务器
- 使用ArcGIS Server发布我们的数据
- html超级链接(看张鹏老师的视频课程后所总结的)
- Strategy Pattern策略模式
- Codeforces 358 D. Dima and Hares
- 打基础自然是厚积薄发,这样的话我一般推荐下面四本书
- Buildroot 用法
- 基于jdk动态代理的实现与源码解析