首页 > 代码库 > 泛型的冒泡,插入,选择,希尔算法

泛型的冒泡,插入,选择,希尔算法

留着给自己用吧...

 public class FanXingHelper<T> where T:IComparable    {        /// <summary>        /// 冒泡排序算法        /// </summary>        /// <param name="array"></param>        public T[] MaoPao(T[] array) {            int length = array.Length;            for (int i = 0; i <= length-2; i++)            {                for (int j = length-1; j>=1 ; j--)                {                    if (array[j].CompareTo(array[j-1])<0)                    {                        T temp = array[j];                        array[j] = array[j - 1];                        array[j - 1] = temp;                    }                }            }            return  array;        }        /// <summary>        /// 直接插入排序        /// </summary>        /// <param name="array"></param>        /// <returns></returns>        public T[] ZhiJieChaRu(T[] array) {            int length = array.Length;            for (int i = 1; i < length-1; i++)            {                int j = i;                while (j>=1&&array[j].CompareTo(array[j-1])>0)                {                    T temp = array[j];                    array[j] = array[j - 1];                    array[j - 1] = temp;                    j--;                }            }            return array;        }        /// <summary>        /// 选择排序        /// </summary>        /// <param name="array"></param>        /// <returns></returns>        public T[] XuanZhePaiXu(T[] array) {            int length = array.Length;            for (int i = 0; i <= length-2; i++)            {                int index = i;                for (int j = length-1; j >i; j--)                {                    if (array[j].CompareTo(array[index])<0)                    {                        index = j;                    }                                       T temp = array[i];                     array[i] = array[index];                     array[index] = temp;                }            }            return array;        }        /// <summary>        /// 希尔排序算法        /// </summary>        /// <param name="array"></param>        /// <returns></returns>        public T[] XiErPaiXu(T[] array) {            int length = array.Length;            for (int i = length/2;i>0; i=i/2)            {                for (int j = i; j < i; j++)                {                    if (array[j].CompareTo(array[j-i])>0)                    {                        T temp = array[j];                        int key = j - i;                        while (key >= 0 && array[key].CompareTo(temp) > 0) {                            array[key + i] = array[key];                            key -= i;                        }                        array[key + i] = temp;                    }                }            }            return array;        }    }

如果有错希望能指出来...谢谢

这个主要是看了.net之美突发奇想所以写的这个东西

参考:

http://www.cnblogs.com/JimmyZhang/category/128644.html

泛型的冒泡,插入,选择,希尔算法