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;
}
計算機並不知怎麼比較大小