数据结构与算法基础01—— 常见基本排序、二分法与异或运算

2021-08-05 08:56

阅读:615

标签:情况下   hid   情况   ++   isp   fan   amp   ==   基础   ?常见基本排序 选择排序? 基本思路:从第一位开始标记,每次选出最小数字与标记位交换 代码实现: private static void selectSort(int[] arr) { if(arr == null || arr.length arr[start+1]){ swap(arr, start, start+1); } } } } View Code 插入排序 ? 基本思路:保证前面有序的情况下,依次把后面数字插入到指定位置继续保证有序 代码实现: private static void insertionSort(int[] arr) { if (arr == null || arr.length 0 && arr[j] 1); if(arr[mid] >= num){ index = mid; R = mid - 1; }else{ L = mid + 1; } } return index; } View Code 在一个有序数组中,找 1); if(arr[mid] arr[mid-1]){ R = mid - 1; }else if(arr[mid] > arr[mid+1]){ L = mid + 1; }else{ return mid; } } return -1; } View Code 异或运算 基本规则:相同则0,不同则1 不用额外变量交换两个数 private static void swap(int[] arr, int a, int b){ arr[a] = arr[a] ^ arr[b]; arr[b] = arr[a] ^ arr[b]; arr[a] = arr[a] ^ arr[b]; } View Code 一个数组中有一种数出现奇数次,其他数都出现了偶数次,怎么找到并打印这种数 private static int getNum(int[] arr){ if(arr == null || 0 == arr.length){ return -1; } int num = 0; for (int i = 0; i


评论


亲,登录后才可以留言!