一)定义

直接插入排序( straight insertion sort )是一种最简单的排序方法。它的基本操作是将一个记录插入到一个长度为 m (假设)的有序表中,使之仍保持有序,从而得到一个新的长度为 m + 1 的有序表。

例如:

排序02-插入排序

 

二)插入排序实现(java)

// 升序
	public static void sort(int[] a) {
		for (int i = 1; i < a.length; i++) {
			int j = i;
			int temp = a[j];
			while (j > 0 && temp < a[j - 1]) {
				a[j] = a[j - 1];
				j--;
			}
			a[j] = temp;
		}
	}

	public static void main(String[] f) {
		int[] a = new int[25];
		Random random = new Random();
		for (int i = 0; i < a.length; i++) {
			a[i] = random.nextInt(1000);
		}
		InsertSort.sort(a);
		for (int a_ : a)
			System.out.println(a_);
	}

此算法外循环 n-1 次,在一般情况下内循环平均比较次数的数量级为O(n) ,所以算法总时间复杂度为O(n2) 。

插入排序的过程中比较的过程就是一个查找的过程,为了更加快速的找到“合适的位置”,可以使用高效些的查找算法,例如和折半查找结合,就形成了折半插入排序。

 

 

相关文章:

  • 2021-10-24
  • 2021-07-18
  • 2022-01-02
  • 2022-12-23
  • 2021-07-10
  • 2021-09-13
  • 2021-11-09
  • 2021-11-04
猜你喜欢
  • 2022-12-23
  • 2021-04-09
  • 2021-07-08
  • 2021-06-16
  • 2021-06-25
  • 2021-05-30
  • 2021-06-20
相关资源
相似解决方案