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


    留着给自己用吧...

     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

  • 相关阅读:
    DbUtil组件及C3P0数据库连接池组件的使用
    servlet过滤器
    JDBC实现往MySQL插入百万级数据
    学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
    一种c#深拷贝方式完胜java深拷贝(实现上的对比)
    JSP三个指令及9个内置对象
    java web工程的错误页面的简单配置
    理解java Web项目中的路径问题
    web应用程序servlet的映射名称的规则及请求过程
    tomcat上servlet程序的配置与处理servlet请求过程
  • 原文地址:https://www.cnblogs.com/fleas/p/4201088.html
Copyright © 2020-2023  润新知