using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //输入0-10测试数据 (好比在100内 输入 50个数字 进行排序) int[] testData = { 0, 9, 1, 5, 3, 6, 6, 0}; //桶编号 (0 1 2 3 4 5 6 7 8 9 10) List<int> _listBucket = new List<int>(); //初使记录 List<int> _listBook = new List<int>(); //生成桶0-10编号 并初使值 for (int j = 0; j < 11; j++) { _listBucket.Add(j); _listBook.Add(0);//初使红旗(标记)0 } //数据和编号比较【数字出现一次 book对应的编号 放一个标记(红旗)】 for (int i = 0; i < testData.Length; i++) { for (int k = 0; k < _listBucket.Count; k++) { //如果数和编号相等 则 对应的编号 记录 if (testData[i] == _listBucket[k]) { _listBook[k]++; break; } } } //输出有记录的对应 对应编号 <好像一个倒过来 输出数字> for (int f = 0; f < _listBucket.Count; f++) { for (int h = 1; h <= _listBook[f]; h++) { Console.WriteLine(f); } } } } }
(看此图容易看懂!)