一。用过excel的都知道excel的列编号是这样的:
a b c .... z aa ab ac .... az ba bb bc .... yz za zb zc .... zz aaa aab aac ....
分别代表以下编号:
1 2 3 .... 26 27 28 29 .... 52 53 54 55 .... 676 677 678 679 .... 702 703 704 705 ....
请写个函数,完成从一个正整数到这种字符串之间的转换。
程序如下:
using System;
namespace ConsoleApplication1
{
class Class1
{
static void Main()
{
for (int i = 1; i <= 999; i++)
{
Console.Write("{0,3}->{1,3}\t", i, Int2Excel(i));
}
Console.ReadLine();
}
public static string Int2Excel(int i)
{
string s = "";
int m = i % 26;
i = i / 26;
while (i != 0 || m != 0)
{
if (m == 0)
{
i--;
m = 26;
}
s = Convert.ToChar(m + Convert.ToInt32('A') - 1).ToString() + s;
m = i % 26;
i = i / 26;
}
return s;
}
}
}
冒泡排序法:
private void startOrderAsc()
52 {
53 char temp;
54
55 //核心代码(升序)
56 for (int i=0;i<orderLength ;i++)
57 for (int j = 0; j < orderLength - i-1; j++)
58 {
59 if (Orderdata [j].CompareTo (Orderdata [j+1])>0)
60 {
61 temp = Orderdata[j];
62 Orderdata[j] = Orderdata[j+ 1];
63 Orderdata[j + 1] = temp;
64
65 }
66 }
67
68 }
namespace ConsoleApplication1
{
class Class1
{
static void Main()
{
for (int i = 1; i <= 999; i++)
{
Console.Write("{0,3}->{1,3}\t", i, Int2Excel(i));
}
Console.ReadLine();
}
public static string Int2Excel(int i)
{
string s = "";
int m = i % 26;
i = i / 26;
while (i != 0 || m != 0)
{
if (m == 0)
{
i--;
m = 26;
}
s = Convert.ToChar(m + Convert.ToInt32('A') - 1).ToString() + s;
m = i % 26;
i = i / 26;
}
return s;
}
}
}
冒泡排序法:
private void startOrderAsc()
52 {
53 char temp;
54
55 //核心代码(升序)
56 for (int i=0;i<orderLength ;i++)
57 for (int j = 0; j < orderLength - i-1; j++)
58 {
59 if (Orderdata [j].CompareTo (Orderdata [j+1])>0)
60 {
61 temp = Orderdata[j];
62 Orderdata[j] = Orderdata[j+ 1];
63 Orderdata[j + 1] = temp;
64
65 }
66 }
67
68 }
这其实不是一个简单的10进制转26进制的问题,因为基数不是从0到25,是从1到26。
因此如果遇到余数为0,低位就要向高位借1变26(而高位要减1)。
折半(对半、二分)查找
public static int Search(int[] src, int subject) { int low = 0, high = src.Length - 1; while (low <= high) { int mid = (low + high) / 2; if (src[mid] < subject) { low = mid + 1; } else if (src[mid] > subject) { high = mid - 1; } else { return mid; } } return -1; }
-------------------------------------------------------------------------------------------------------------
摘自http://www.cnblogs.com/Laser_Lu/archive/2005/04/13/136841.html