
算法
Nemo521echo
这个作者很懒,什么都没留下…
展开
-
不用四则运算求两个数的和
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 while(num2!=0){ int tem=num1^num2; int carry=(num1&num2)<<1; //进位的和没进位的在相加 num1=tem; num...原创 2020-03-09 14:02:35 · 379 阅读 · 0 评论 -
基数排序
public static void Redix(int[] arrs) { int maxValue = arrs[0]; //找出要排序的次数 个位,十位, for (int i = 0; i < arrs.length; i++) { if (arrs[i] > maxValue) { ...原创 2019-11-05 21:00:00 · 219 阅读 · 1 评论 -
插入排序
public static void insertSort(int[] arr) { for (int i = 1; i < arr.length; i++) { //第一个元素是有序的 从下标为1的开始找 int insertValue = arr[i];//要插入的值 int insertIndex = i - 1;//...原创 2019-11-05 18:47:17 · 135 阅读 · 0 评论 -
希尔排序
#希尔排序之交换法(效率较低)public static void ShellSorted(int arr[]) { int tem = 0; for (int gap = arr.length / 2; gap > 0; gap /= 2) {//外层确定间隔 for (int i = gap; i < arr.length;...原创 2019-09-09 22:07:05 · 185 阅读 · 0 评论 -
快速排序
以数组中的第一个元素位基准,比它小的放在他的左边,比它大的放在他的右边。然后在对左右两边的数组进行递归的调用。最后使得数组是有序的。public static void qsort(int[] arr, int left, int right) { if (left >= right) { //数组中只有一个元素 return; }...原创 2019-09-10 23:28:52 · 126 阅读 · 0 评论 -
数据结构-归并排序
数据结构之归并排序,采用‘分治’法, //合并 public static void Merge(int[] arr, int left, int mid, int right, int[] temp) { int i = left;//左边初始指针 int j = mid + 1;//右边的初始指针 int t = 0;//临时数组tem...原创 2019-09-12 09:51:09 · 167 阅读 · 0 评论 -
二分查找的改进
对二分查找(对于数组是有序)的该进,可以加快查找的速度mid=1/2(right-left) ------>mid=left+1/2(right-left)mid=low+(findVlue-left)(high-left)/(right-left) (findValue表示要查找的值) //要判断findValue的范围是在arr[left]到arr[right]之间 不然在...原创 2019-09-28 00:15:16 · 371 阅读 · 0 评论