A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 来明坤 中级黑马   /  2012-8-12 18:58  /  1683 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1 冒泡排序
[c-sharp] view plaincopyprint?
class BubbleSorter  
{  
      
    public static void Sort(int[] a)  
    {  
        BubbleSort(a);  
    }  
    private  static void BubbleSort(int[] myArray)  
    {  
        for (int i = 0; i < myArray.Length ; i++)  
        {  
            for (int j=i;j<myArray .Length ;j++)  
                if (myArray[i] > myArray[j])  
                {  
                    Swap(ref myArray[j], ref myArray[i]);  
                }  
        }  
    }  
  
    private static void Swap(ref int left, ref int right)  
    {  
        int temp;  
        temp = left;  
        left = right;  
        right = temp;  
    }  
}  

2 鸡尾酒排序
[c-sharp] view plaincopyprint?
class CockTailSorter  
    {  
        public  static void CockTailSort(int[] myArray)  
        {  
            int low, up, index, i;  
            low = 0;  
            up = myArray.Length - 1;  
            index = low;  
            while (up > low)  
            {  
                for (i = low; i < up; i++)  
                {  
                    if(myArray [i]>myArray [i+1])  
                    {  
                        Swap (ref myArray [i],ref myArray [i+1]);  
                        index = i;  
                    }  
                }  
                up = index;  //记录最后一个交换的位置  
                for (i = up; i > low; i--)  
                {  
                    if (myArray[i] < myArray[i - 1])  
                    {  
                        Swap(ref myArray[i],ref myArray[i - 1]);  
                        index = i;  
                    }  
                }  
                low = index; //记录最后一个交换的位置  
            }  
        }  
  
        private static void Swap(ref int left, ref int right)  
        {  
            int temp;  
            temp = left;  
            left = right;  
            right = temp;  
        }  
    }  

3 选择排序
[c-sharp] view plaincopyprint?
class SelectSorter  
    {  
        private static void Swap(ref int left, ref int right)  
        {  
            int temp;  
            temp = left;  
            left = right;  
            right = temp;  
        }  
        public static void SelectSort(int[] myArray)  
        {  
            int i, j, smallest;  
            for (i = 0; i < myArray.Length - 1; i++)  
            {  
                smallest = i;  //记录最小数据的下标  
                for (j = i + 1; j < myArray.Length; j++)  
                {  
                    if (myArray[j] < myArray[smallest])  
                    {  
                        smallest = j;  //如果有它更小的数,将下标记录下来  
                    }  
                }  
                Swap(ref myArray[i], ref myArray[smallest]);  
            }  
        }  
    }  

4 插入排序
[c-sharp] view plaincopyprint?
class InsertSorter  
    {  
        public static void InsertSort(int[] myArray)  
        {  
            int i, j, temp;  
            for (i = 1; i < myArray.Length; i++)  
            {  
                temp = myArray[i];  //保存当前数据  
                j = i - 1;  
                //将数据插入到有序表中,如果表中的数据比该数据大那么就依次向后  
                //移动有序表中的数据,直到找到第一个比它小的数据将它放在那个数据后面  
                while (j >= 0 && myArray[j] > temp)  
                {  
                    myArray[j + 1] = myArray[j];  
                    j--;  
                }  
                myArray[j + 1] = temp;  
            }  
        }  
    }  

5 希尔排序
[c-sharp] view plaincopyprint?
class ShellSorter  
    {  
        public static void ShellSort(int[] myArray)  
        {  
            int i, j, increment;  
            int temp;  
            for (increment = myArray.Length / 2; increment > 0; increment /= 2)  
            {  
                for (i = increment; i < myArray.Length; i++)  
                {  
                    temp = myArray[i];  
                    for (j = i; j >= increment; j -= increment)  
                    {  
                        if (temp < myArray[j - increment])  
                        {  
                            myArray[j] = myArray[j - increment];  
                        }  
                        else  
                            break;  
                    }  
                    myArray[j] = temp;  
                }  
            }  
        }  
    }  

跟JAVA 貌似没什么区别

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
太棒了,值得学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马