从今天开始收集一些经典的算法。
一。用過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 ....
請寫個(gè)函數(shù),完成從一個(gè)正整數(shù)到這種字符串之間的轉(zhuǎn)換。
程序如下:
?
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????????}
這其實(shí)不是一個(gè)簡單的10進(jìn)制轉(zhuǎn)26進(jìn)制的問題,因?yàn)榛鶖?shù)不是從0到25,是從1到26。
因此如果遇到余數(shù)為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
轉(zhuǎn)載于:https://www.cnblogs.com/mrhgw/archive/2005/11/10/272872.html
總結(jié)
以上是生活随笔為你收集整理的从今天开始收集一些经典的算法。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 未能从程序集 XX加载类型XXX的错误解
- 下一篇: 求爱奇艺里的纪录片《地球的秘密》的720