protected void SelectSort(int[] array)
{
int tmp;//暂存要交换的数据
int t;//交换数据的位置
for (int i = 0; i < array.Length; i++)
{
t = i;
for (int j = i + 1; j < array.Length; j++)
{
if (array[j] < array[t])
{
t = j;
}
}
tmp = array[i];
array[i] = array[t];
array[t] = tmp;
}
}
/// <summary>
/// 选择排序
/// </summary>
public void SmallToarge()
{
int temp = 0;
int[] iArry = new int[] { 49, 5, 13, 6, 10, 55, 99};
for (int i = 0; i < iArry.Length; i++)
{
for (int j = i+1; j < iArry.Length; j++)
{
if (iArry[i] > iArry[j])
{ //A-----B C---A B-----C
temp = iArry[j]; //这里实现互换如:A B C三个瓶子 B是空瓶 A给B(A空,B满)C 给A(C空A满)B给C(B空C满)实现交换
iArry[j] = iArry[i];
iArry[i] = temp;
}
}
}
//输出
for (int f = 0; f < iArry.Length; f++)
{
Response.Write(iArry[f]+"<br/>");
}
}
/// <summary>
/// 冒泡排序
/// </summary>
/// <param name="list"></param>
public void sort(int[] list)
{
int i, j, temp; //定义变量
j = 1;//赋初始值
while (j < list.Length)
{
for (i = 0; i < list.Length - j; i++) //因为i的比较项是 i 和i+1 一个数组有6项那么i的最大值是5
{
// int[] iArry = new int[] { 49, 5, 13, 6, 10, 55, 99 };
//49>5 49>13 49>6 49>10 49<55 55<99
//第一个和第二个比较,第二个和第三个比较,3和4,4和5,5和6,6和7
//int[] iArry = new int[] {10,9,8,7,6 };
//10>9 10>8 10>7 10>6 所以10是最大的
if (list[i] > list[i + 1]) //加以加较
{
temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
j++; //每加一次少比较一项
}
//输出
for (int f = 0; f < list.Length; f++)
{
Response.Write(list[f] + "<br/>");
}
}
/// <summary>
/// 冒泡排序2
/// </summary>
public void sortTwo()
{
int i,j,t;
int[]array={4,2,6,9,22,1,100};
for (i = 0; i < array.Length - 1; i++)
{
for (j = 0; j < array.Length - i - 1; j++)
{
if (array[j] > array[j + 1])
{
t = array[j];
array[j] = array[j + 1];
array[j + 1] = t;
}
}
}
//输出
for (int f = 0; f < array.Length; f++)
{
Response.Write(array[f] + "<br/>");
}
}
/// <summary>
/// 直接插入排序
/// </summary>
/// <param name="array"></param>
public void InsertSort(int[] array)
{
int i, j;
int temp;
for (i = 1; i < array.Length; i++)
{
temp = array[i];
j = i - 1;
//与已排序的数逐一比较, 大于temp时, 该数移后
while ((j >= 0) && (array[j] > temp))
{
array[j + 1] = array[j];
j--;
}
array[j + 1] = temp;
}
for (int f = 0; f < array.Length; f++)
{
Response.Write(array[f] + "<br/>");
}
}