C# 数组排序

一:冒泡排序法
class Sort
{
int temp;
int[] num = new int[] { 3, 20, 1, 35, 2 };

public void Show()
{
//冒泡排序:
//第一重循环表示要冒泡的次数,第一次冒泡4次,第二次冒泡3次......
for (int i = 1; i < num.Length; i++)
{
for (int j = 0; j < num.Length - i; j++)
{
if (num[j] > num[j + 1]) //将每相邻的两个数相比
{
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}

//相同道理,只是一个是从上开始,一个是从下开始
for (int i = num.Length - 1; i > 0; i--)
{
for (int j = num.Length - 1; j > num.Length - i; j--)
{
if (num[j] < num[j - 1])
{
temp = num[j];
num[j]=num[j-1];
num[j-1]=temp;
}
}
}
}
}

二:插入排序法
public class Insert
{
public void Show(int[] list)
{
for (int i = 1; i < list.Length; i++)
{
int temp = list[i]; //把要进行比较的数暂时存到一个临时变量中
int j = i;
//进行比较,如果大于拿出来的中个数,就把大的数放到那出来的那个数的原来的位置
//如此循环比较,循环往下挪动位置
while (j > 0 && (list[j - 1] > temp)) //注意数组的索引要大于0
{
list[j] = list[j - 1];
j--;
}
list[j] = temp; //将中个拿出来的数放到合适的空闲位置
}

}
}

三:选择排序法
class Sort
{
int[] list = new int[]{3,20,0,100};
int temp;

public void Show()
{
for (int i = 0; i < list.Length - 1; i++) //最后一个数没有可比的对象所以不用循环比较了
{
for (int j = i + 1; j < list.Length; j++)
{
if (list[j] > list[i]) //一个固定的数和数组内的其他每一个数都相比
{
temp = list[j];
list[j] = list[i];
list[i] = temp;
}
}
}
}
}
C# <wbr>数组排序

原文地址:https://www.cnblogs.com/wangzhen/p/2183312.html