排序算法之冒泡排序、选择排序、插入排序

1、冒泡排序(效率很低)

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

2、插入排序(相对于冒泡排序提升了很多时间,插入排序在测试一个数组有很多已经排序好的,速度很快。因为它避免了很多不必要的循环)

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

 

3、选择排序

 public static int[] Sort(int[] arr)
        {
            for (int i = 0; i < arr.Length - 1; i++)
            {
                //定义一个最小数的索引
                int min = i;
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[j] < arr[min])
                    {
                        min = j;
                    }
                }
                int temp = arr[i];
                arr[i] = arr[min];
                arr[min] = temp;
            }
            return arr;
        }

 

posted @ 2021-08-27 10:28  蛋蛋十二月  阅读(45)  评论(0)    收藏  举报