您的位置:首页 > 编程语言 > Java开发

插入排序的java实现

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

算法描述:

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));
     }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: