实例

//用java实现一个插入排序算法
public class InsertSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = {3, 5, 7, 1, 8, 11, 9};	//定义数组
		doInsertSort(arr);					//开始排序
	}
	
	//排序方法
	public static void doInsertSort(int[] arrays) {
		int len = arrays.length; 			//获取数组的长度
		for (int i = 1; i < len; i++) {		//遍历数组,从1开始
			int j;							//定义变量j
			int temp = arrays[i];			//临时存储当前的数字
			for (j = i; j > 0; j--) {		//遍历i之前的数字
				//如果前面的数字大于后面的,则把打的值赋到后边
				if (arrays[j - 1] > temp) {
					arrays[j] = arrays[j - 1];				
				}else {
					//如果当前的数,不小于前面的数,那就说明不小于前面所有的数
					//因为前面已经是排好了序的,所以直接通出当前一轮的比较
					break;
				}
			}
			arrays[j] = temp; 				//把空缺位置的数字赋值为原有的值
		}
		insertSortPrint(arrays);						//打印
	}
	
	//
	public static void insertSortPrint(int[] arrays) {
		for (int i = 0; i < arrays.length; i++) {	//遍历
			System.out.print(arrays[i] + " ");		//打印,以空格隔开
		}
		System.out.println();						//换行
	}
}

运行实例 »

点击 "运行实例" 按钮查看在线实例