【数据结构】直接插入排序_哨兵位

文件


#include <iostream>
using namespace std;

#define MAX 10

typedef struct
{
	int r[MAX+1];
}sqlist;

// 比较大小并插入
void InsertSort(sqlist &sl,int n)
{
	int j;
	for (int i = 2; i < 7; ++i)
	{
		if (sl.r[i] < sl.r[i - 1])
		{
			sl.r[0] = sl.r[i];
			for (j = i; sl.r[0] < sl.r[j-1]; --j)
			{
				sl.r[j] = sl.r[j - 1];
			}
			sl.r[j] = sl.r[0];
		}
	}
}


函数


#include "InsertSort_0.h"

int main()
{
	// 0为哨兵位,起到两个作用:1、临时空间 2、保证不越界
	sqlist sq = { 0,21,25,49,16,8 };
	InsertSort(sq,7);
	for (int i = 1; i < 7; ++i)
	{
		cout << sq.r[i] << " ";
	}
	cout << endl;
	return 0;
}


相关文章

【啊哈!算法】算法3:最常用的排序——快速排序       ...
匿名组 这里可能用到几个不同的分组构造。通过括号内围绕的正...
选择排序:从数组的起始位置处开始,把第一个元素与数组中其...
public struct Pqitem { public int priority; ...
在编写正则表达式的时候,经常会向要向正则表达式添加数量型...
来自:http://blog.csdn.net/morewindows/article/details/6...