C#算法 选择排序、冒泡排序、插入排序

时间:2023-03-09 08:34:13
C#算法 选择排序、冒泡排序、插入排序

1.冒泡排序:

方法一:

public static int[] MaoPao(int[] arr)
{
//执行多少次
for (int i = 0; i < arr.Length; i++)
{
//每执行1次,把最大的放在最后
for (int j = 0; j < arr.Length - 1; j++)
{
int a = arr[j];
int b = arr[j + 1];
if (a>b)
{
arr[j+1] = a;
arr[j] = b;
}
}
}
return arr;
}  

冒泡排序2

 public static int[] MaoPao2(int[] arr)
{
for (int i = arr.Length-1; i >=1; i--)
{
for (int j = 0; j<= j-1; j++)
{
int a = arr[j];
int b = arr[j + 1];
if (a > b)
{
arr[j + 1] = a;
arr[j] = b;
}
}
}
return arr;
}

  选择排序;找最小的,放在前面,再找第2个小的,直到找完。

        //选择排序
public static int[] XuanZhe(int[] arr)
{
int min, temp;
//执行多少次
for (int i = 0; i < arr.Length; i++)
{
min = i; //最小值先取当前第1个 for (int j = i + 1; j < arr.Length; j++)//j从第2个值开始取
{
if (arr[j] < arr[min])
{
min = j;
}
}
//先把最小值取出来了,再操作
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
return arr;
}

  3.插入排序

后面一个和前面几个比较,是放前面,中间,还是后面

        public static int[] InsertSort(int[] arr)
{
int inner, temp;
//执行多少次
for (int i = 0; i < arr.Length; i++)
{
temp = arr[i];
inner = i;
while (inner > 0 && arr[inner - 1] >= temp)
{
arr[inner] = arr[inner - 1];
inner -= 1;
}
arr[inner] = temp; foreach (var item in arr)
{
Console.Write(item + " ");
}
Console.WriteLine();
}
return arr;
}