哨兵的作用

查找中免去越界判斷

       這種在查找方向的盡頭設置“哨兵”免去了在查找過程中每次比較後都要判斷查找位置是否越界的小技巧,看似與原先差別不大,但在總數據較多時,效率提高很大,是非常好的編程技巧。
代碼一

int sequentialSearch(int* a, int n, int key)
{
	int i;
	for (i = 1; i <= n; i++) {
		if (a[i] == key)
			return i;
	}
	return 0;
}

代碼二

int sequentialSearch(int* a, int n, int key)
{
	int i;
	a[0] = key;//哨兵
	i = n;
	while (a[i] != key) i--;
	return i;//返回0
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章