欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA直接插入排序法

程序员文章站 2024-03-22 23:09:28
...

直接插入排序法

从后向前找到合适的位置后插入

基本思想

每一步将待排序的数用一个变量记录,然后按照其大小将其插入到已排序的子序列的合适的位置。

举例

待排序的数列:34、4、56、17、90、65

项目 temp 数列
原始数列 34、4、56、17、90、65
第一轮 4 4、34、56、17、90、65
第二轮 56 4、34、56、17、90、65
第三轮 17 4、17、34、56、90、65
第四轮 90 4、17、34、56、90、65
第五轮 65 4、17、34、56、65、90
		int[]nums = {34,4,56,17,90,65};	//	待排序的数列
		int len = nums.length;
		//外循环_控制比较的轮数
		for(int i =1; i< len; i++) {	//从数组下标[1]开始比较
			int temp = nums[i];	//用temp变量记录待排序的数
			int j =0;	
			//内循环_控制每次排序开始的位置
			for(j=i-1; j>=0; j--) {	//从后往前排序
				if(nums[j]>temp) {	//判断待排序的数是否比已排序的子序列小
					nums[j+1]=nums[j];							
				}else {
					break;
				}
			}
			if(nums[j+1]!=temp) {	//判断待排序的数是否发生位置变化
				nums[j+1]=temp;
			}
		}
		for(int a:nums) {
			System.out.println(a);	//打印数组
		}
/*
排序结果
		4
		17
		34
		56
		65
		90
*/