程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c#實現冒泡、快速、選擇和插入排序算法(5)

c#實現冒泡、快速、選擇和插入排序算法(5)

編輯:關於C語言

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. 下一頁:
Copyright © 程式師世界 All Rights Reserved