public ICountable <T> Sort(ICountable <T> array) { var arr = (ICountable <T>)array.Clone(); var gap = arr.Count / 2; while (gap > 0) { for (var i = 0; i + gap < arr.Count; i++) { var j = i + gap; var tmp = arr[j]; while (j - gap >= 0 && tmp.CompareTo(arr[j - gap]) < 0) { arr[j] = arr[j - gap]; j -= gap; } arr[j] = tmp; } gap /= 2; } return(arr); }
public ICountable <T> Sort(ICountable <T> array) { var arr = (ICountable <T>)array.Clone(); for (var i = 0; i < arr.Count - 1; i++) { for (var j = 0; j < arr.Count - 1; j++) { if (arr[j].CompareTo(arr[j + 1]) > 0) { var tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } return(arr); }
public ICountable <T> Sort(ICountable <T> array) { var arr = (ICountable <T>)array.Clone(); for (var i = 1; i < arr.Count; i++) { var insert = arr[i]; var pos = i; while (pos > 0 && arr[pos - 1].CompareTo(insert) > 0) { arr[pos] = arr[pos - 1]; pos--; } arr[pos] = insert; } return(arr); }
public ICountable <T> Sort(ICountable <T> array) { var arr = (ICountable <T>)array.Clone(); for (var i = 0; i < arr.Count - 1; i++) { var min = i; for (var j = i + 1; j < arr.Count; j++) { if (arr[j].CompareTo(arr[min]) < 0) { min = j; } } var tmp = arr[i]; arr[i] = arr[min]; arr[min] = tmp; } return(arr); }