滴水2.4 排序 查找 模板

1.冒泡排序代碼


點擊查看代碼
template<class T>
void qt(T al,int slong)
{
	//// 4 1 5 6 7 8
	int k = 0;
	for (int k = 0; k < slong - 1; k++)
	{
		for (int i = 0; i < slong - 1-k; i++)
		{
			if (al[i] > al[i + 1])
			{
				//4 1
				int temp = al[i];
				al[i] = al[i + 1];
				al[i + 1] = temp;
				//1 4
			}
		}

	}
}

2.折半查找

點擊查看代碼
/*
int arr[8] = {1,3,5,7,8,9,42,56};
*/
int zb(int* arr, int size,int nelemrnt)
{
	int Begin = 0, End = size - 1, Index;
	while (Begin <= End)
	{
		//中間數字
		Index = (Begin + End) / 2;
		printf("下標:%d\n", Index);
		if (nelemrnt > arr[Index])
		{
			Begin = Index + 1;

		}
		else if (nelemrnt < arr[Index])
		{
			End = Index - 1;

		}
		else
		{
			return Index;
		}

	}
	return 0;
}

如果我們需要對其他類型比較,難道還需要再寫代碼嗎 這裏我們用到模板

template< classT>
這裏面的calss t可以代替任意符號
模板是代碼的複製

作業 1.交換任意類型的值

點擊查看代碼
template<class N, class m ,class T>

void swap( N a,m b,T t)
{
	t = a;
	a = b;
	b = t;
	printf("a:%d------b:%d", a, b);
}

int main()
{
	int a = 4;
	char b = 3;
	swap(a,b,1);
	
	return 0;
}

計算機並不知怎麼比較大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章