WEB开发网
开发学院软件开发C语言 c#实现冒泡、快速、选择和插入排序算法 阅读

c#实现冒泡、快速、选择和插入排序算法

 2009-04-11 08:25:12 来源:WEB开发网   
核心提示: 4.插入排序using System;namespace InsertSorter{ /// <summary> /// 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法,它的工作原理是通过构建有序序列,c#实现冒泡、快速、选择和插入排序算法(6),对

4.插入排序

using System;

namespace InsertSorter
{

    /// <summary>
    /// 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,
    /// 在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),
    /// 因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位, 为最新元素提供插入空间。
    /// </summary>
    public class InsertSort
    {
        public static void Sort(int[] numArr)
        {
            for (int i = 1; i < numArr.Length; i++) //i从1开始
            {
                int t = numArr[i]; //标志当前未排序数据
                int j = i;
                while ((j > 0) && (numArr[j - 1] > t))
                {
                    numArr[j] = numArr[j - 1];
                    j--;
                }
                numArr[j] = t; //在已排序序列中插入当前值
            }
        }
    }

    public class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[] { 20, 41, 27, 14, 16, 1, 8, 55, 9, 35, 22, 14 };
            InsertSort.Sort(arr);
            Console.WriteLine("Numbers after insertsort:");
            foreach (int i in arr)
            {
                Console.WriteLine(i);
            }
            Console.Read();
        }
    }
}

虽然在实际的项目中,我们的确很少用到这些或其他更高级的算法,但是”算法是程序的灵魂“。虽然算法确实很难,但是”当你用它们巧妙地解决问题的时候,那种纯粹的喜悦和快乐是任何不曾体验过的人所能感受到的“。很不幸,我还没有体验几次这样的快乐。

上一页  1 2 3 4 5 6 

Tags:实现 冒泡 快速

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接