A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 咖喱猫 中级黑马   /  2013-8-12 21:06  /  1590 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 咖喱猫 于 2013-8-13 18:54 编辑

看到一道题是比较IP数值大小;真心没懂这句话。IP要怎么比较?
61.54.231.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249

2 个回复

正序浏览
彭家贰小姐 发表于 2013-8-12 23:24
这个题目在8期的时候,讨论过的
http://bbs.itheima.com/forum.php?mod=viewthread&tid=57681&extra=page%3 ...

谢谢~~~:lol
回复 使用道具 举报
这个题目在8期的时候,讨论过的
http://bbs.itheima.com/forum.php?mod=viewthread&tid=57681&extra=page%3D1%26filter%3Dtypeid%26typeid%3D180%26typeid%3D180
但里面给的方法,都只能实现最后一位的排序,前三位排序不了,貌似老师的意思也是这样
前段时间我试着写了每一位都排序,但有个瑕疵最终输出都成了三位的,目前还没想到更好的方法,当然你也可以在上面的贴中找到仅排最后一位的好方法。

  1. using System;
  2. using System.IO;
  3. using System.Text;

  4. namespace test36
  5. {
  6. internal class Program
  7. {
  8. private static void Main(string[] args)
  9. {
  10. var lines = File.ReadAllLines(@"..\..\IpInfo.txt", Encoding.Default); //读取txt文档
  11. foreach (var l in lines) //循环输出排序前的IP
  12. {
  13. Console.WriteLine(l);
  14. }
  15. var arrNum = new long[lines.Length]; //定义一个空的数组
  16. for (var i = 0; i < lines.Length; i++) //遍历每一行数据
  17. {
  18. var str = lines[i].Split('.'); //以点分割
  19. var strBuilder = new StringBuilder();
  20. foreach (var t in str)
  21. {
  22. strBuilder.Append(t.PadLeft(3, '0'));
  23. } //192.168.90.20 处理后 192168090020
  24. arrNum[i] = Convert.ToInt64(strBuilder.ToString());
  25. }
  26. BubbleSort(arrNum); //数组排序
  27. var arrStr = new string[lines.Length];
  28. for (var i = 0; i < arrNum.Length; i++)
  29. {
  30. arrStr[i] = string.Format("{0:0,00}", arrNum[i]).Replace(',', '.');
  31. } //192168090020 处理后是 192.168.090.020
  32. Console.WriteLine("排序后: "); //输出排序后的结果
  33. foreach (var t in arrStr)
  34. {
  35. Console.WriteLine(t);
  36. }
  37. Console.ReadKey();
  38. }

  39. public static void BubbleSort(long[] arr)
  40. {
  41. for (var i = 0; i < arr.Length - 1; i++)
  42. {
  43. for (var j = 0; j < arr.Length - i - 1; j++)
  44. {
  45. if (arr[j] <= arr[j + 1]) continue;
  46. var temp = arr[j];
  47. arr[j] = arr[j + 1];
  48. arr[j + 1] = temp;
  49. }
  50. }
  51. }
  52. }
  53. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马