1、 不使用中间变量,一句代码实现两个数值的交换
int a = 20, b = 30;
a =b+ (b = a)*0;
Console.WriteLine("a={0},b={1}", a, b);
输出的结果是a=30,b=20 2、 字符串反转,ABC-----》CBA
第一个字符和最后一个字符交换,第二个字符与倒数第二个字符交换,以此类推
private static string ReverseString(string input)
{char[] chs = input.ToCharArray();for (int i = 0; i < chs.Length / 2; i++){char cTemp = chs[i];chs[i] = chs[chs.Length - 1 - i];chs[chs.Length - 1 - i] = cTemp;}return new string(chs);}
3、 顺序查找:在数组a的前n个元素中查找x 按顺序逐个比较,直到找到或找不到。
int Search ( int []num, int n, int x )
{for (int i=n-1; i>=0; i-- )if ( num[i]==x ) return i;return -1; // -1表示找不到
}
所有执行路径都要有正确的返回值,不要忘记最后那个return语句。
4、折半查找
待查找的表必须是有序的,先从中间开始比较,比较一次至少抛弃一半元素,逐渐缩小范围,直到查找成功或失败。
int BinarySearch ( int []a, int n, int x )
{Int low = 0,high = n-1;while ( low <= high ) {int mid = ( low + high )/2; // 折半if ( a[mid]==x )return mid; // 找到else if ( x<a[mid] ) // x位于低半区 [low..mid-1]high = mid -1;else // x位于高半区 [mid+1..high]low = mid + 1;}return -1; // -1表示未找到
}
递归版本:
int BinarySearch (int []a, int low, int high, int x )
{if ( low>high ) return -1; // 查找失败int mid = (low+high)/2; // 折半if ( a[mid]==x )return mid; // 找到else if ( x<a[mid] )return BinarySearch (a, low, mid-1, x);elsereturn BinarySearch (a, mid+1, high, x);
}