C#排序算法之插入排序

排序规则:

  将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

  从头到尾依次扫描未排序序列,将扫描到的每个元素插入到有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面)。

时间复杂度

  平均时间复杂度:O(n^2),最好情况:O(n),最坏情况:O(n^2)

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;

namespace 排序算法
{
    class InsertSort
    {
        public static void Sort(int[] arr) {
            int n = arr.Length;
            for(int i = 1; i < n; i++)
            {
                int e = arr[i];
                int j;
                for( j = i; j > 0; j--)
                {
                    if(e < arr[j - 1])
                    {
                        arr[j] = arr[j - 1];
                    }
                    else
                    {
                        break;
                    }
                }
                arr[j] = e;
            }
        }
    }
}

 

posted @ 2020-07-07 21:04  三里路异乡客  阅读(224)  评论(0编辑  收藏  举报