我现在的代码如下,
public void BubbleSort(string[] R)
        {
            int i, j;
            string temp; //交换标志   
            bool exchange;
            for (i = 0; i < R.Length; i++) //最多做R.Length-1趟排序   
            {
                exchange = false; //本趟排序开始前,交换标志应为假   
                for (j = R.Length - 2; j >= i; j--)
                {
                    string[] kk = R[j].ToString().Split(',');
                    string[] kk1 = R[j + 1].ToString().Split(',');
                    if (Double.Parse(kk1[0]) < Double.Parse(kk[0])) //交换条件  
                    {
                        temp = R[j + 1];
                        R[j + 1] = R[j];
                        R[j] = temp;
                        exchange = true; //发生了交换,故将交换标志置为真   
                    }
                }
                if (!exchange) //本趟排序未发生交换,提前终止算法  
                {
                    break;
                }
            }            
        }
传进一个数组,根据数组第一位数字大小排序,数组一共2000行数据,排完序大约要3-4秒钟,怎么优化能让其处理的更快呢?新手求助,谢谢大家!

解决方案 »

  1.   


     class Program
        {
            static void Main(string[] args)
            {
                int[] list = {1,2,4,57,75,2,3,6,3,2,1,99,55,110 };
                list =  BubbleSort(list);
                for (int i = 0; i < list.Length; i++)
                    Console.Write(list[i] + "\t");
                Console.Read();
            }        public static int[] BubbleSort(int[] R)
            {
                int i, j;
                int temp; //交换标志  
                for (i = 0; i < R.Length; i++) //最多做R.Length-1趟排序   
                {
                    for (j = i; j < R.Length; j++)
                    {
                        if (R[i] < R[j])
                        {
                            temp = R[i];
                            R[i] = R[j];
                            R[j] = temp;
                        }
                    }
                }            return R;
            }
        }
      

  2.   

    排序 比大小,是对数字类型进行比较,
    而你传入了一个 字符串数组,这样你还要反复的把字符串数组  转换成  数字类型及逆行比较另外你的exchange没起到作用,你为什么还要定义它呢
      

  3.   

    int [] array = new int ;
    int temp = 0 ;
    for (int i = 0 ; i < array.Length - 1 ; i++)
    {
    for (int j = i + 1 ; j < array.Length ; j++)
    {
    if (array[j] < array)
    {
    temp = array ;
    array = array[j] ;
    array[j] = temp ;
    }
    }
    }
    不慢哦