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;
        }

  

原文地址:https://www.cnblogs.com/sunliyuan/p/9802074.html