从今天开始收集一些经典的算法。

一。用过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        }

这其实不是一个简单的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

原文地址:https://www.cnblogs.com/mrhgw/p/272872.html