赞
踩
打扑克就是插入排序的典型例子,特别经典
将数据分为两部分,一部分是排好序的,另外一部分是无序,把无序的数据一个一个插入到排好序的序列中。
时间复杂度:O(n^2) 稳定性:稳定
- public static void insertionSort(int [] arr){
- int len = arr.length;
- //i从1开始,因为最开始的时候,第一个元素步需要排序
- for (int i = 1; i < len; i++) {
- int data = arr[i];
-
- //从数组的后面往前比较,这样我们只需要交换两个数的位置
- //如果从数组前面开始比较,涉及到数据的整体移位
- int j = i - 1;
- while (j >= 0) {
- if(arr[j] > data){
- arr[j + 1] = arr[j];
- }else {
- break;
- }
- j --;
- }
- arr[j + 1] = data;
- }
-
- //输出排序结果
- for (int i = 0; i < len; i++) {
- System.out.print(arr[i] + " ");
- }
- System.out.println();
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。