C#直接插入排序

74 阅读1分钟

直接插入排序

public static void InsertSort(int[] dataArray)
        {
            //从第二个元素开始遍历
            for (int i = 1; i < dataArray.Length; i++)
            {
                bool isInsert = false;
                int iValue = dataArray[i];
                //拿到元素后,与前面所有的元素进行比较
                //如果发现比该元素大的,就将大的元素向后移动
                for (int j = i - 1; j >= 0; j--)
                {
                    if (dataArray[j] > iValue)
                    {
                        dataArray[j + 1] = dataArray[j];
                    }
                    else
                    {
                        //如果发现前面的元素比该元素小,则不移动位置
                        dataArray[j + 1] = iValue;
                        isInsert = true;
                        break;
                    }
                }
                if (isInsert == false)
                {
                    dataArray[0] = iValue;
                }
            }
		}