不使用任何方法/函数对字符串值进行排序

我试图在不使用任何方法或function的情况下进行排序

我的代码:

string[] names = { "Flag", "Nest", "Cup", "Burg", "Yatch", "Next" }; string name = string.Empty; Console.WriteLine("Sorted Strings : "); for (int i = 0; i < names.Length; i++) { for (int j = i + 1; j < names.Length; j++) { for (int c = 0; c  names[j][c]) { name = names[i]; names[i] = names[j]; names[j] = name; } } } Console.WriteLine(names[i]); } 

请让我为此代码提供任何解决方案?

在这段代码中我得到“索引超出了数组的范围”exception

  int temp = 0; int[] arr = new int[] { 20, 65, 98, 71, 64, 11, 2, 80, 5, 6, 100, 50, 13, 9, 80, 454 }; for (int i = 0; i < arr.Length; i++) { for (int j = i + 1; j < arr.Length; j++) { if (arr[i] > arr[j]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } Console.WriteLine(arr[i]); } Console.ReadKey(); 

您需要实现排序算法。

您可以实现的一个非常简单的算法是插入排序 :

 string[] names = { "Flag", "Nest", "Cup", "Burg", "Yatch", "Next" }; for (int i = 0; i < names.Length; i++) { var x = names[i]; var j = i; while(j > 0 && names[j-1].CompareTo(x) > 0) { names[j] = names[j-1]; j = j-1; } names[j] = x; } 
 string[] names = { "Flag", "Next", "Cup", "Burg", "Yatch", "Nest" }; string name = string.Empty; Console.WriteLine("Sorted Strings : "); for (int i = 0; i < names.Length; i++) { int c = 0; for (int j = 1; j < names.Length; j++) { if (j > i) { Sort: if (names[i][c] != names[j][c]) { if (names[i][c] > names[j][c]) { name = names[i]; names[i] = names[j]; names[j] = name; } } else { c = c + 1; goto Sort; } } } Console.WriteLine(names[i]); } 

我在名称数组的长度和比较字符串方面存在冲突。 以下是工作解决方案。 我已经测试过它现在正在运行

 static void Main(string[] args) { int min=0; string[] names = { "Flag", "Nest", "Cup", "Burg", "Yatch", "Next" }; string name = string.Empty; Console.WriteLine("Sorted Strings : "); for (int i = 0; i < names.Length-1; i++) { for (int j = i + 1; j < names.Length;j++ ) { if(names[i].Length < names[j].Length) min =names[i].Length; else min =names[j].Length; for(int k=0; k names[j][k]) { name = names[i].ToString(); names[i] = names[j]; names[j] = name; break; } else if(names[i][k] == names[j][k]) { continue; } else { break; } } } } for(int i= 0;i 
 class Program { static void Main(string[] args) { int[] arr = new int[] {9,1,6,3,7,2,4}; int temp = 0; for (int i = 0; i < arr.Length; i++) { for (int j = i + 1; j < arr.Length;j++) { if(arr[i]>arr[j]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } Console.Write(arr[i]+","); } Console.ReadLine(); }