1. 主页
  2. 文档
  3. 数组的处理算法
  4. 插入排序

插入排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test05
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[] { 63, 4, 24, 1, 3, 15 };//定义一个一维数组,并赋值
            for (int i = 0; i < arr.Length; ++i)//循环访问数组中的元素
            {
                int temp = arr[i];//定义一个int变量,并使用获得的数组元素值赋值
                int j = i;
                while ((j > 0) && (arr[j - 1] > temp))//判断数组中的元素是否大于获得的值
                {
                    arr[j] = arr[j - 1];//如果是,则将后一个元素的值提前
                    --j;
                }
                arr[j] = temp;//最后将int变量存储的值赋值给最后一个元素
            }
            Console.WriteLine("排序后结果为:");
            foreach (int n in arr)//循环访问排序后的数组元素并输出
                Console.Write("{0}", n + " ");
            Console.WriteLine();
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test05
{
    class Program
    {
        static void Main(string[] args)
        {

            /*
             * 63, 4, 24, 1, 3, 15
             * 0   1  2   3  4  5  
             
             for 0         for 1                for 2                   for 3                   for 4
    temp     63            4                    24                      1                       3
             0             1                    2                       3                       4
             while不执行   1>0 63>4             2>0 63>24               3>0 63>1                4>0 63>3
             arr[0]=63     arr[1]4=arr[1-1]63   arr[2]24=arr[2-1]63     arr[3]1=arr[3-1]63      arr[4]3=arr[4-1]63
             63            arr[0]4 arr[1]63     arr[2]63 arr[1]24       arr[3]63 arr[2]1        arr[4]63 arr[3]3   
             
             
             
             */
            int[] arr = new int[] { 63, 4, 24, 1, 3, 15 };//定义一个一维数组,并赋值

            for (int i = 0; i < arr.Length; ++i)//循环访问数组中的元素
            {

                int temp = arr[i];//定义一个int变量,并使用获得的数组元素值赋值  63 4
                int j = i; 
               
                while ((j > 0) && (arr[j - 1] > temp))//判断数组中的元素是否大于获得的值
                {
                    arr[j] = arr[j - 1];//如果是,则将后一个元素的值提前 
                }

                arr[j] = temp;//最后将int变量存储的值赋值给最后一个元素
            }

            Console.WriteLine("排序后结果为:");
            foreach (int n in arr)//循环访问排序后的数组元素并输出
                Console.Write("{0}", n + " ");
            Console.WriteLine();
            Console.ReadLine();
        }
    }
}
这篇文章对您有用吗?

我们要如何帮助您?