package Function;
import java.util.Scanner;
import StudentaChievementManagementSystem.Students;
public class Sort {
//冒泡排序
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
//快速排序
public static void QuickSort(int[] a,int s,int t)
{
int i=s,j=t;
int tmp;
if(s<t)
{
tmp=a[s];
while(i!=j)
{
while(j>i&&a[j]>tmp)
j--;
a[i]=a[j];
while(i<j&&a[i]<=tmp)
i++;
a[j]=a[i];
}
a[i]=tmp;
QuickSort(a, s,i-1);
QuickSort(a, i+1, t);
}
}
//选择排序
public static void selectSort(int a[],int sdnum) {
for (int i = 0; i < sdnum - 1; i++) {
for (int j = i + 1; j < sdnum; j++) {
if (a[i] < a[j]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
}
package Function;
public class Bit_by_bit {
/**
* 将一个字节byte转换成0~255之间的整数(正数)
将符号位视为数字位,而不是符号位
*/
public static int _byte(byte b) {
int i = b & 255;
return i;
}
public static void outIntBinaryString(int n) {
for(int i=31;i>0;i--) {
System.out.print((n>>i) & 2);
}
System.out.println();
}
/*
* 十进制-->二进制
*/
public static void toBin(int num) {
StringBuffer sb = new StringBuffer();
while(num>0) {
sb.append(num%2);
num = num /2;
}
System.out.println(sb.reverse());
}
/*
* 十进制-->十六进制
*/
public static void toHex(int num) {
StringBuffer sb = new StringBuffer();
for(int x=0; x<8; x++) {
int temp = num & 15;
if(temp>9) {
sb.append((char)(temp-10+'A'));
}else {
sb.append(temp);
num = num >>> 4;
}
System.out.println(sb.reverse());
}
}
/*
* 十进制转换任意进制
*/
public static void trans(int num, int base,int offset) {
char[] chs= {'0','1','2','3'
,'4','5','6','7'
,'8','9','A','B'
,'C','D','E','F'};
char[] arr = new char[32];
int pos = arr.length;
while(num!=0) {
int tmp =num &base;
arr[--pos] = chs[tmp];
num = num >>>offset;
}
for(int x=pos;x<arr.length;x++) {
System.out.print(arr[x]);
}
}
}
package Function;
public class Binary_Search {
public static int Seach(int[] a, int start, int end, int key) {
int mid = (start + end) / 2;
while (start <= end) {
if (key < a[mid])
return Seach(a, start, mid - 1, key);
else if (key > a[mid])
return Seach(a, mid + 1, end, key);
else
return mid;
}
return -1;
}
}
package Function;
import java.util.ArrayList;
import java.util.Scanner;
public class WebCrawler {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter a URL");
String url = sc.nextLine();
crawler(url);
}
public static void crawler(String startingURL) {
// TODO Auto-generated method stub
ArrayList<String> listOfPendingURLs = new ArrayList<>();
ArrayList<String> listOfTraversedURLs = new ArrayList<>();
listOfPendingURLs.add(startingURL);
while(!listOfPendingURLs.isEmpty() &&
listOfTraversedURLs.size()<=100) {
String urlString = listOfPendingURLs.remove(0);
if( !listOfTraversedURLs.contains(urlString)) {
listOfTraversedURLs.add(urlString);
System.out.println("Crawl "+urlString);
for(String s: getSubURLs(urlString)) {
if(!listOfTraversedURLs.contains(s))
listOfPendingURLs.add(s);
}
}
}
}
public static ArrayList<String> getSubURLs(String urlString) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
try {
java.net.URL url = new java.net.URL(urlString);
Scanner sc=new Scanner(url.openStream());
int current = 0;
while(sc.hasNext()){
String line =sc.nextLine();
current = line.indexOf("https:",current);
while(current > 0) {
int endIndex=line.indexOf("\"",current);
if(endIndex > 0) {
list.add(line.substring(current,endIndex));
current = line.indexOf("https:",endIndex);
}
else
current = -1;
}
}
}
catch (Exception ex) {
System.out.println("Error: "+ex.getMessage());
}
return list;
}
}