按字母顺序排列字符串

时间:2017-01-28 13:00:18

标签: c# algorithm sorting

        //code with problem (maybe) 
        numberArray = NameNumEquv;
        listStringArray = NamesArray;
        string[] sortedArray = new string[NamesArray.Length];

        for (int arrayItemCounter = 0; arrayItemCounter < NamesArray.Length; arrayItemCounter++)
        {
            compareArrayCount = 1;
            initialArrayCount = 0;
            while (compareArrayCount < numberArray.Length)
            {
                for (int doubleArrayLength = 0; doubleArrayLength < numberArray[compareArrayCount].Length; doubleArrayLength++)
                {
                    if (numberArray[initialArrayCount][doubleArrayLength] < numberArray[compareArrayCount][doubleArrayLength])
                    {
                        initialArrayCount = compareArrayCount;
                        break;
                    }
                }
                compareArrayCount = compareArrayCount + 1;
            }

            sortedArray[arrayItemCounter] = listStringArray[initialArrayCount];

            List<string> tempArrayValues = new List<string>();
            List<int[]> tempNumArrayValues = new List<int[]>();

            for (int tempArrayCount = 0; tempArrayCount < listStringArray.Length; tempArrayCount++)
            {
                if (tempArrayCount != initialArrayCount)
                {
                    tempArrayValues.Add(listStringArray[tempArrayCount]);
                    tempNumArrayValues.Add(numberArray[tempArrayCount]);
                }
            }

            listStringArray = tempArrayValues.ToArray();
            numberArray = tempNumArrayValues.ToArray();
            tempArrayValues.Clear();
            tempNumArrayValues.Clear();
        }
        //till here
        foreach (string nums in sortedArray)
        {
            Console.WriteLine(nums);
        }
    }

    public static int[] AlphaNumericConversion(string stringValue, int arrayLength) 
    {
        string Alphabets = "abcdefghijklmnopqrstuvwxyz";
        char[] alphabetArray = Alphabets.ToCharArray();

        string lowerCaseConv = stringValue.ToLower();
        char[] stringArray = lowerCaseConv.ToCharArray();

        int[] numericalConvertedArray = new int[arrayLength];
        for (int valueArrayCount = 0; valueArrayCount < numericalConvertedArray.Length; valueArrayCount++)
        {
            numericalConvertedArray[valueArrayCount] = 0;
        }

        for (int letterCounter= 0;letterCounter < stringArray.Length;letterCounter++)
        {
            for (int alphabetCounter = 0; alphabetCounter < Alphabets.Length; alphabetCounter++)
            {
                if (stringArray[letterCounter] == alphabetArray[alphabetCounter])
                    numericalConvertedArray[letterCounter] = alphabetCounter + 1;
            }
        }

        return numericalConvertedArray;
    }
  }
}

我想按升序排列字符串。它按照ZA中的反向字母顺序排列单字母字符串(a,b,c,d,e .....)和随机包含2个或更多字母的字符串,例如&#34; Aayush&#34;,& #34; Ayush&#34;,&#34; Aayusha&#34;,&#34; Ayusha&#34;到&#34; Aayusha&#34;,&#34; Ayusha&#34;,&#34; Aayush&#34;,&#34; Ayush&#34;。代码有什么问题。不建议简单地使用List.Sort(),因为我想以算法的方式编写它。我试图了解它是如何工作的,而不是使用Sort()。

0 个答案:

没有答案