Java实现插入排序程序
在本文中,我们将学习如何在Java中实现插入排序。插入排序是一种基于比较的原地排序算法。这里,维护一个始终排序的子列表。例如,数组的较低部分被维护为排序状态。要插入此排序子列表中的元素必须找到其适当的位置,然后插入到该位置。因此得名,插入排序。
顺序搜索数组,并将未排序的项移动并插入到排序的子列表(在同一数组中)。
问题陈述
对于给定的数组,编写一个Java程序来实现插入排序。
输入
array[] = {10, 20, 25, 63, 96, 57}
输出
10 20 25 57 63 96
插入排序算法
实现 插入排序算法的步骤 -
- 如果它是第一个元素,则已排序。返回1;
- 选择下一个元素
- 与排序子列表中的所有元素进行比较
- 将排序子列表中所有大于要排序的值的元素右移
- 插入for循环的值
- 重复此过程,直到列表排序
伪代码
以下是插入排序算法的伪代码 -
Algorithm: Insertion-Sort(A)
for j = 2 to A.length
key = A[j]
i = j – 1
while i > 0 and A[i] > key
A[i + 1] = A[i]
i = i -1
A[i + 1] = key
Java实现插入排序程序
以下是Java程序实现插入排序 -
public class InsertionSort {
public static void main(String args[]){
int array[] = {10, 20, 25, 63, 96, 57};
int size = array.length;
for (int i=1 ;i< size; i++){
int val = array[i];
int pos = i;
while(array[pos-1]>val && pos>0){
array[pos] = array[pos-1];
pos = pos-1;
}
array[pos] = val;
}
for (int i=0 ;i< size; i++){
System.out.print(" "+array[i]);
}
}
}
输出
10 20 25 57 63 96
代码解释
上面的Java程序实现了插入排序算法。它首先初始化一个整数数组,然后确定数组的长度。主要的排序逻辑发生在一个for循环中,该循环从第二个元素开始迭代数组。对于每个元素,当前值 val 与数组排序部分的元素进行比较。如果排序部分中的任何元素大于val,则循环将这些元素向右移动,为插入腾出空间。
最后,val 被放置在其正确的位置,确保数组的左侧保持排序状态。排序后,程序按顺序打印排序后的数组元素。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP