2016-04-19 6 views
0

В настоящее время у меня есть метод сортировки пузырьков (показано ниже), но я не знал, как его изменить, чтобы его можно было повторно использовать, поэтому вместо переменной arri можно просто вставить новый массив каждый раз, когда я вызываю метод вместо повторяя тот же код? СпасибоКак я могу сделать этот код повторно используемым?

static void bsort(float[] arr) 
    { 

     float temp = 0; 

     for (int write = 0; write < arr.Length; write++) 
     { 
      for (int sort = 0; sort < arr.Length - 1; sort++) 
      { 
       if (arr[sort] < arr[sort + 1]) 
       { 
        temp = arr[sort + 1]; 
        arr[sort + 1] = arr[sort]; 
        arr[sort] = temp; 
       } 
      } 
     } 

     for (int i = 0; i < arr.Length; i++) ; 
    } 
+0

так что вы не знаете, является ли это массив с плавающей точкой , double или int и так далее? искать функции шаблона –

+1

Вы хотите, чтобы вы могли сортировать массивы типов, отличных от 'float'? Если это так, вы захотите использовать дженерики. – juharr

+1

Что именно означает 'for (int i = 0; i fvu

ответ

1

Вы можете использовать IComparable<T>, как описано в этой теме

Generic BubbleSort Extension

как это ...

public static void BubbleSort<T>(T[] array) where T : IComparable 
     { 
      for (int outer = array.Length; outer >= 1; outer--) 
      { 
       for (int inner = 0; inner < outer - 1; inner++) 
       { 
        if (array[inner].CompareTo(array[inner + 1]) > 0) 
        { 
         T swap = array[inner]; 
         array[inner] = array[inner + 1]; 
         array[inner + 1] = swap; 
        } 

       } 
      } 
     } 
+0

Хотя ссылка может ответить на вопрос, вы должны включить соответствующую информацию здесь и использовать ссылку только для справки. – juharr

+0

@juharr Это или отметьте этот вопрос как дубликат ссылочного оригинала. – fvu

+0

@fvu Да, я даже не щелкнул по нему, чтобы увидеть, что это еще один вопрос. – juharr

Смежные вопросы