【Java】插入排序

就像打扑克时理牌一样
对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
在这里插入图片描述

public class InsertionSort {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		int[] arr = {
    
     2, 46, 19, 27, 10, 5 };

		for (int i = 1; i < arr.length; i++) {
    
    // 从第二个数开始(数组下标为1)
			int t = arr[i];// 记录要插入的数据
			// 从已经排序的序列最右边的开始比较,找到比其小的数
			int j = i;
			while (j > 0 && t < arr[j - 1]) {
    
    
				arr[j] = arr[j - 1];
				j--;
			}
			// 存在比其小的数,插入
			if (j != i) {
    
    
				arr[j] = t;
			}
		}
		for (int i = 0; i < arr.length; i++) {
    
    
			System.out.print(arr[i] + " ");
		}
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_45867159/article/details/113975895