冒泡排序法
原理:相邻两个数比较
int[] arr = { 12, 2, 30, 4, 8, 54,3, };
for (int i=0;i<arr.Length-1;i++) //控制轮数,索引-1是因为最后一个数比较会超出索引范围,所以要减1
{for(int k=0;k<arr.Length-i-1;k++) //减i是因为上一个数已经比较好了就没必要再比较了
{
if(arr[k]>arr[k+1]) //交换位置
{
int t = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = t;
}
}
}
//输出语句1
foreach (int item in arr)
{
Console.Write(item+" ");
}
//输出语句2
//for (int i = 0; i < arr.Length; i++)
//{
// Console.WriteLine(arr[i] + " ");
//}
输出结果:
2 3 4 8 12 30 54
选择排序法
原理:第一个和最后一个比较
int[] arr = { 12, 5, 2, 9, 7, 50 };
for (int i = 0; i < arr.Length; i++)
{
for (int j = i; j < arr.Length; j++)
{
if (arr[j] > arr[i])
{
int t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
}
foreach (int item in arr)
{
Console.Write(item + " ");
}
输出结果:50 12 9 7 5 2