插入排序的java实现

引入:插入排序是编程中常见的排序方式,它的原理类似于大家打扑克牌码牌的过程,适用于对较少元素的排序。

算法描述:

INSERTION-SORT(A)

for i = 2 to A.length

key = A[i]

i = j - 1

while i > 0 and a[i] > key

a[i+1] = a[i]

i = i - 1

A[i + 1] = key

java实现:

package sort;
import java.util.Arrays;
import java.util.Random;

public class InsertSortDemo {
 
     // 插入排序算法
     static void insertSort(int[] arr) {
          for (int i = 1; i < arr .length ; i ++) {
               int key = arr [i ];  // 保存当前循环下要插入的值
               int j = i - 1;     // 从前面已被排序好的最后一个元素开始,寻找arr[i]的合适位置
               while (j >= 0 && arr[j] > key) {
                   arr[ j + 1] = arr[ j];   // 将当前比较的元素往后移一个位置
                   j--;
              }
               arr[ j + 1] = key;    // 将arr[i]放入正确的位置
         }
     }

     public static void main(String[] args) {
          int[] test = new int[10];
         Random random = new Random();
          for (int i = 0; i < test .length ; i ++) {  // 数组赋值
               test[ i] = random.nextInt(100);
         }
         System. out.println(Arrays.toString( test));
          insertSort(test); // 排序
         System. out.println(Arrays.toString( test));
     }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值