Java 生成百万随机 IP 地址并排序 - 高效算法实现
import java.util.Random;
public class RandomIPGenerator { public static void main(String[] args) { // 生成 100 万个随机 IP 地址 String[] ips = new String[1000000]; Random rand = new Random(); for (int i = 0; i < ips.length; i++) { ips[i] = rand.nextInt(256) + '.' + rand.nextInt(256) + '.' + rand.nextInt(256) + '.' + rand.nextInt(256); }
// 对 IP 地址进行排序
long start = System.currentTimeMillis();
sort(ips);
long end = System.currentTimeMillis();
System.out.println('排序耗时:' + (end - start));
// 展示排序前后的 IP 地址
System.out.println('排序前:');
for (int i = 0; i < 4; i++) {
System.out.print(ips[i] + ';');
}
System.out.println();
System.out.println('排序后:');
for (int i = 0; i < 4; i++) {
System.out.print(ips[i] + ';');
}
}
public static void sort(String[] ips) {
for (int i = 0; i < ips.length - 1; i++) {
for (int j = 0; j < ips.length - i - 1; j++) {
if (compare(ips[j], ips[j + 1]) > 0) {
String temp = ips[j];
ips[j] = ips[j + 1];
ips[j + 1] = temp;
}
}
}
}
public static int compare(String ip1, String ip2) {
String[] arr1 = ip1.split('\.');
String[] arr2 = ip2.split('\.');
for (int i = 0; i < 4; i++) {
int num1 = Integer.parseInt(arr1[i]);
int num2 = Integer.parseInt(arr2[i]);
if (num1 != num2) {
return num1 - num2;
}
}
return 0;
}
}
原文地址: https://www.cveoy.top/t/topic/mTY6 著作权归作者所有。请勿转载和采集!