数据结构-排序-直接插入排序(c++实现)

 #include<iostream>
using namespace std;

#define MAXN 20
typedef int keytype;

typedef struct {
	keytype  key;
}Redtype;

typedef struct {
	Redtype r[MAXN + 1];
	keytype length;
}Sqlist;

void InsertSort(Sqlist& L) {
	int  i, j;
	for (i = 2; i < L.length; i++) {
		if (L.r[i].key < L.r[i - 1].key) {
			L.r[0].key = L.r[i].key;
			for (j = i - 1; L.r[0].key < L.r[j].key; j--) {
				L.r[j + 1].key = L.r[j].key;
			}
			L.r[j + 1].key = L.r[0].key;
		}
	}
}

int main() {
	Sqlist L;
	L.length = 9;
	for (int i = 1; i < L.length; i++) {
		cin >> L.r[i].key;
	}
	L.r[0].key = L.r[1].key;  //r[0] 哨兵
	InsertSort(L);

	for (int i = 1; i < L.length; i++)
		cout << L.r[i].key << ' ';
}

猜你喜欢

转载自blog.csdn.net/qq_43710881/article/details/105894845