优化的插入排序
来源:互联网 发布:macbook绘画软件 编辑:程序博客网 时间:2024/06/07 00:31
插入排序
思想:
1、第一次循环,比较第二个元素和第一个元素的大小,然后换位置(2个元素比较);
2、第二次循环,比较第三个元素和第二个和第一个元素的大小,然后换位置(3个元素比较);
3、第三次循环,比较第四个元素和第三个、第二个和第一个元素的大小,然后换位置(4个元素比较);
4、以此类推
具体实现代码:
public class InsertSort {
public static void main(String[] args) {
int[] arr=getRandomArray(100, 0, 1000);
//insertSort(arr);
insertSort1(arr);
System.out.println(Arrays.toString(arr));
}
public static void insertSort(int[] array){
int LEN=array.length;
for(int i=1;i<LEN;i++){
for(int j=i;j>0;j--){
if(array[j]<array[j-1]){
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
}
public static void main(String[] args) {
int[] arr=getRandomArray(100, 0, 1000);
//insertSort(arr);
insertSort1(arr);
System.out.println(Arrays.toString(arr));
}
public static void insertSort(int[] array){
int LEN=array.length;
for(int i=1;i<LEN;i++){
for(int j=i;j>0;j--){
if(array[j]<array[j-1]){
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
}
//优化的插入排序,将赋值元素与索引为j的前一个每个元素进行循环比较
public static void insertSort1(int[] array){
int LEN=array.length;
for(int i=1;i<LEN;i++){
int num=array[i];//实现了数组的赋值
int j;
for(j=i;j>0 && array[j-1]>num;j--){
array[j]=array[j-1];//数组的值往后移动
}
array[j]=num;//赋值元素找到了应该插入的位置
}
}
public static void insertSort1(int[] array){
int LEN=array.length;
for(int i=1;i<LEN;i++){
int num=array[i];//实现了数组的赋值
int j;
for(j=i;j>0 && array[j-1]>num;j--){
array[j]=array[j-1];//数组的值往后移动
}
array[j]=num;//赋值元素找到了应该插入的位置
}
}
//随机获取长度为len的随机数组
public static int[] getRandomArray(int len,int min,int max){
int[] array=new int[len];
for(int i=0;i<len;i++){
array[i]=(int)(Math.random()*(max-min)+min);
}
return array;
}
}
public static int[] getRandomArray(int len,int min,int max){
int[] array=new int[len];
for(int i=0;i<len;i++){
array[i]=(int)(Math.random()*(max-min)+min);
}
return array;
}
}
阅读全文
0 0
- 插入排序的优化
- 插入排序的优化
- 优化的插入排序
- 直接插入排序的优化
- 排序算法之希尔排序-优化后的插入排序
- 插入排序的优化,比较插入同步进行
- 插入排序算法优化
- 插入排序及其优化
- 插入排序及优化
- 插入排序 优化
- 插入排序及其优化
- 插入排序及优化
- 插入排序及其优化
- 插入排序及其优化
- 使用插入排序优化快速排序的算法实现
- 希尔排序算法---优化了的插入排序
- 排序算法之选择和插入排序的简单优化
- 优化的直接插入排序(二分查找插入排序,希尔排序)
- 2286: [Sdoi2011]消耗战
- vmware下虚拟机三种模式Nat,仅主机,桥接浅析
- 三分搜索--hdu3714 Error Curves
- 时间转换为ISO8061规范的UTC格式
- 心情小结 程序员的日常
- 优化的插入排序
- ffmpeg推流与播放
- 数组逆时针旋转
- HDU
- docker常用命令
- 【一点感悟】如何学习一项技术?
- Seeeduino + TFT(带触摸)
- Python Matplotlib实现三维/四维数据的柱状图绘制
- 剑指offer之用两个栈实现队列