教程参考
2023.3申请github copilot x 学生认证以及Jetbrain专业版学生教育免费教程

1:修改个人信息

Github右上角头像点击 Your profile
Name:改成你的英文名字,例如 Li Mingtian
Bio:I am Li Mingtian, a student in xxx university. I want to study in Github and try to make some contributions to the community.
Company:Xxx University
Location:Xxx University
image.png

2:准备材料

image.png
image.png

3:提交材料

  • 用手机(不要用电脑)打开Github学生认证网址https://education.github.com/discount_requests/application(注意千万不要科学上网!!!)
  • 然后这样填:
    • 邮箱:随便选一个
    • 学校:直接中文输入你的学校名字,然后选择弹出来的学校信息
    • 理由:I want to study in Github and try to make some contributions to the community.
    • 选continue,允许获取位置
  • 手机选上传照片,上传step2的jpeg图片
  • type选transcript,提交

注意:期间要多次拍照尝试
image.png

4:等待邮箱结果

Screenshot_2023-05-03-23-42-09-914_com.tencent.an.jpg
Screenshot_2023-05-03-23-42-28-944_com.tencent.an.jpg

5:Github Copilot

  1. 打开https://github.com/features/copilot
  2. 点击Start my free trial
  3. 安装vscode github copilot插件,登录验证就可以用了~

image.png
image.png

6:使用技巧

写注释回车即可
【Github Copilot 使用】
点击查看【bilibili】

  1. class test {
  2. // 写一个冒泡排序
  3. public int[] effervescence(int arr[]) {
  4. int temp = 0;
  5. for (int i = 0; i < arr.length; i++) {
  6. for (int j = 0; j < arr.length - i - 1; j++) {
  7. if (arr[j] > arr[j + 1]) {
  8. temp = arr[j];
  9. arr[j] = arr[j + 1];
  10. arr[j + 1] = temp;
  11. }
  12. }
  13. }
  14. return arr;
  15. }
  16. // 写一个选择排序
  17. public int[] select(int arr[]) {
  18. int temp = 0;
  19. int minIndex = 0;
  20. for (int i = 0; i < arr.length; i++) {
  21. minIndex = i;
  22. for (int j = i; j < arr.length; j++) {
  23. if (arr[minIndex] > arr[j]) {
  24. minIndex = j;
  25. temp = arr[minIndex];
  26. arr[minIndex] = arr[i];
  27. arr[i] = temp;
  28. }
  29. }
  30. }
  31. return arr;
  32. }
  33. // 写一个插入排序
  34. public int[] insert(int arr[]) {
  35. int temp = 0;
  36. int insertIndex = 0;
  37. for (int i = 1; i < arr.length; i++) {
  38. insertIndex = i - 1;
  39. temp = arr[i];
  40. while (insertIndex >= 0 && temp < arr[insertIndex]) {
  41. arr[insertIndex + 1] = arr[insertIndex];
  42. insertIndex--;
  43. }
  44. arr[insertIndex + 1] = temp;
  45. }
  46. return arr;
  47. }
  48. // 写一个希尔排序
  49. public int[] shell(int arr[]) {
  50. int temp = 0;
  51. int insertIndex = 0;
  52. for (int gap = arr.length / 2; gap > 0; gap /= 2) {
  53. for (int i = gap; i < arr.length - gap; i++) {
  54. insertIndex = i - gap;
  55. temp = arr[i];
  56. while (insertIndex >= 0 && temp < arr[insertIndex]) {
  57. arr[insertIndex + gap] = arr[insertIndex];
  58. insertIndex -= gap;
  59. }
  60. arr[insertIndex + gap] = temp;
  61. }
  62. }
  63. return arr;
  64. }
  65. // 写一个快速排序
  66. public int[] quick(int arr[], int left, int right) {
  67. int l = left;
  68. int r = right;
  69. int pivot = arr[(left + right) / 2];
  70. int temp = 0;
  71. while (l < r) {
  72. while (arr[l] < pivot) {
  73. l++;
  74. }
  75. while (arr[r] > pivot) {
  76. r--;
  77. }
  78. if (l >= r) {
  79. break;
  80. }
  81. temp = arr[l];
  82. arr[l] = arr[r];
  83. arr[r] = temp;
  84. if (arr[l] == pivot) {
  85. r--;
  86. }
  87. if (arr[r] == pivot) {
  88. l++;
  89. }
  90. }
  91. if (l == r) {
  92. l++;
  93. r--;
  94. }
  95. if (left < r) {
  96. quick(arr, left, r);
  97. }
  98. if (right > l) {
  99. quick(arr, l, right);
  100. }
  101. return arr;
  102. }
  103. // 写一个归并排序
  104. public int[] merge(int arr[], int left, int right) {
  105. if (left < right) {
  106. int mid = (left + right) / 2;
  107. merge(arr, left, mid);
  108. merge(arr, mid + 1, right);
  109. mergeSort(arr, left, mid, right);
  110. }
  111. return arr;
  112. }
  113. // 归并排序的合并
  114. public void mergeSort(int arr[], int left, int mid, int right) {
  115. int temp[] = new int[right - left + 1];
  116. int l = left;
  117. int r = mid + 1;
  118. int index = 0;
  119. while (l <= mid && r <= right) {
  120. if (arr[l] < arr[r]) {
  121. temp[index] = arr[l];
  122. l++;
  123. index++;
  124. } else {
  125. temp[index] = arr[r];
  126. r++;
  127. index++;
  128. }
  129. }
  130. while (l <= mid) {
  131. temp[index] = arr[l];
  132. l++;
  133. index++;
  134. }
  135. while (r <= right) {
  136. temp[index] = arr[r];
  137. r++;
  138. index++;
  139. }
  140. for (int i = 0; i < temp.length; i++) {
  141. arr[left + i] = temp[i];
  142. }
  143. }
  144. // 写一个基数排序
  145. public int[] radix(int arr[]) {
  146. int max = arr[0];
  147. for (int i = 0; i < arr.length; i++) {
  148. if (max < arr[i])
  149. max = arr[i];
  150. }
  151. int maxLength = (max + "").length();
  152. int bucket[][] = new int[10][arr.length];
  153. int bucketElementCounts[] = new int[10];
  154. int index = 0;
  155. for (int i = 0, n = 1; i < maxLength; i++, n *= 10) {
  156. for (int j = 0; j < arr.length; j++) {
  157. index = arr[j] / n % 10;
  158. bucket[index][bucketElementCounts[index]] = arr[j];
  159. bucketElementCounts[index]++;
  160. }
  161. int k = 0;
  162. for (int j = 0; j < bucketElementCounts.length; j++) {
  163. if (bucketElementCounts[j] != 0) {
  164. for (int l = 0; l < bucketElementCounts[j]; l++) {
  165. arr[k] = bucket[j][l];
  166. k++;
  167. }
  168. }
  169. bucketElementCounts[j] = 0;
  170. }
  171. }
  172. return arr;
  173. }
  174. // 写一个堆排序
  175. public int[] heap(int arr[]) {
  176. int temp = 0;
  177. for (int i = arr.length / 2 - 1; i >= 0; i--) {
  178. heapSort(arr, i, arr.length);
  179. }
  180. for (int i = arr.length - 1; i > 0; i--) {
  181. temp = arr[i];
  182. arr[i] = arr[0];
  183. arr[0] = temp;
  184. heapSort(arr, 0, i);
  185. }
  186. return arr;
  187. }
  188. // 堆排序的调整
  189. public void heapSort(int arr[], int i, int length) {
  190. int temp = arr[i];
  191. for (int k = i * 2 + 1; k < length; k = k * 2 + 1) {
  192. if (k + 1 < length && arr[k] < arr[k + 1]) {
  193. k++;
  194. }
  195. if (arr[k] > temp) {
  196. arr[i] = arr[k];
  197. i = k;
  198. } else {
  199. break;
  200. }
  201. }
  202. arr[i] = temp;
  203. }
  204. // 写一个计数排序
  205. public int[] count(int arr[]) {
  206. int max = arr[0];
  207. int min = arr[0];
  208. for (int i = 0; i < arr.length; i++) {
  209. if (max < arr[i])
  210. max = arr[i];
  211. if (min > arr[i])
  212. min = arr[i];
  213. }
  214. int count[] = new int[max - min + 1];
  215. for (int i = 0; i < arr.length; i++) {
  216. count[arr[i] - min]++;
  217. }
  218. int index = 0;
  219. for (int i = 0; i < count.length; i++) {
  220. while (count[i] > 0) {
  221. arr[index] = i + min;
  222. index++;
  223. count[i]--;
  224. }
  225. }
  226. return arr;
  227. }
  228. // 写一个希尔排序
  229. public int[] shell(int arr[]) {
  230. int temp = 0;
  231. for (int gap = arr.length / 2; gap > 0; gap /= 2) {
  232. for (int k = gap; k < arr.length; k++) {
  233. for (int i = k - gap; i >= 0; i -= gap) {
  234. if (arr[i] > arr[i + gap]) {
  235. temp = arr[i];
  236. arr[i] = arr[i + gap];
  237. arr[i + gap] = temp;
  238. }
  239. }
  240. }
  241. }
  242. return arr;
  243. }
  244. // 写一个桶排序
  245. public int[] bucket(int arr[]) {
  246. int max = arr[0];
  247. int min = arr[0];
  248. for (int i = 0; i < arr.length; i++) {
  249. if (max < arr[i])
  250. max = arr[i];
  251. if (min > arr[i])
  252. min = arr[i];
  253. }
  254. int bucketSize = 5;
  255. int bucketCount = (max - min) / bucketSize + 1;
  256. ArrayList<ArrayList<Integer>> bucket = new ArrayList<ArrayList<Integer>>();
  257. for (int i = 0; i < bucketCount; i++) {
  258. bucket.add(new ArrayList<Integer>());
  259. }
  260. for (int i = 0; i < arr.length; i++) {
  261. bucket.get((arr[i] - min) / bucketSize).add(arr[i]);
  262. }
  263. int index = 0;
  264. for (int i = 0; i < bucket.size(); i++) {
  265. Collections.sort(bucket.get(i));
  266. for (int j = 0; j < bucket.get(i).size(); j++) {
  267. arr[index] = bucket.get(i).get(j);
  268. index++;
  269. }
  270. }
  271. return arr;
  272. }
  273. // 写一个基数排序
  274. public int[] effervescence(int arr[]) {
  275. int temp = 0;
  276. boolean flag = false;
  277. for (int i = 0; i < arr.length - 1; i++) {
  278. flag = false;
  279. for (int k = 0; k < arr.length - 1 - i; k++) {
  280. if (arr[k] > arr[k + 1]) {
  281. temp = arr[k];
  282. arr[k] = arr[k + 1];
  283. arr[k + 1] = temp;
  284. flag = true;
  285. }
  286. }
  287. if (!flag)
  288. break;
  289. }
  290. return arr;
  291. }
  292. public static void main(String[] args){
  293. int[] name = new int[5];
  294. name[0] = 1;
  295. name[1] = 54325;
  296. name[2] = 7474;
  297. name[3] = 546;
  298. name[4] = 77;
  299. test test = new test();
  300. int[] effervescence = test.effervescence(name);
  301. for(int i = 0; i < effervescence.length; i++){
  302. System.out.println(effervescence[i]);
  303. }
  304. System.out.println("Hello World");
  305. }
  306. }

IDEA
image.png
重启IDEA
image.png

image.png