插入排序

本文详细介绍了一种简单的排序算法——插入排序。通过具体的Java代码实现,展示了如何逐步将未排序的元素插入到已排序序列中,确保序列始终保持有序状态。文章还提供了一个完整的示例程序,演示了插入排序的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 插入排序
* @author Administrator
*
*/
public class InsertSort {

void insertSort(int[] a){
int temp=0;
for(int i=1;i<a.length; i++){
if (a[i]<a[i-1]){
temp = a[i]; //1
a[i] = a[i-1]; //2
int j=0;
// 继续和前面的进行比较
for( j=i-2; j>=0; j--){
if(temp < a[j]){
a[j+1] =a[j];//3
}
if(temp > a[j]){
a[j+1] =temp;//3
break;
}
}
if(j==-1){
a[j+1] = temp;//4
}

}
}
}


public static void insertionSort(int[] data) {

for (int index = 1; index < data.length; index++) {

int key = data[index];

int position = index;

// data[position - 1].compareTo(key) > 0表示升序。

//data[position - 1].compareTo(key) < 0表示降序

while (position > 0 && data[position - 1]> key) {

data[position] = data[position - 1];

position--;

}

data[position] = key;

}

}

public static void main(String[] args) {

InsertSort insertSort=new InsertSort();
int[] a={3,2,6,9,7,1,4,5};
insertSort.insertionSort(a);

for(int i:a){
System.out.println(i);
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值