当前位置: 首页 > news >正文

网站开发基础课程郑州app开发制作

网站开发基础课程,郑州app开发制作,如何做小程序微信,黄岐建网站所有的算法都是这样#xff0c;算法思想最重要#xff0c;其次是实现过程#xff0c;最后才是实现的代码 上战伐谋#xff0c;我们只要明确了其算法思想和实现过程#xff0c;所有算法都是纸老虎#xff0c;所有算法题都是纸老虎 笔者才疏学浅#xff0c;也算是刚刚接…所有的算法都是这样算法思想最重要其次是实现过程最后才是实现的代码 上战伐谋我们只要明确了其算法思想和实现过程所有算法都是纸老虎所有算法题都是纸老虎 笔者才疏学浅也算是刚刚接触算法暂时总结不出思想但是笔者相信只要坚持下去总有一天一定可以领悟到 冒泡排序和选择排序 手撕冒泡排序和选择排序 之前写的这篇博客讲的很清楚了这里只展示代码 public static void bubbleSort(int[] arr){for(int j 0; jarr.length; j){for(int i 0;iarr.length - 1; i) {// 唯一需要注意的点循环n-1次让i1遍历到数组末尾即可if(arr[i1] arr[i]) {int temp arr[i];arr[i] arr[i1];arr[i1] arr[i];}}} }public static void selectSort(int[] arr){for (int i 0; i arr.length; i) {// 假设第一个是最小的所以当然minIndex iint min arr[i];int minIndex i;// 内层抓数字和未排好的数字序列的第一个数字进行比较下标当然从i1开始for (int j i 1; j arr.length; j) {if (arr[j] min) {// 替换新的minmin arr[j];// 记录更小数字的下标minIndex j;}}// 普通交换/*int temp arr[i];arr[i] arr[minIndex];arr[minIndex] temp;*/// 进阶交换我们发现arr[minIndex] min所以不需要再定义一个中间变量temp// 同时arr[i]只有一份所以不能先辅助arr[i]arr[minIndex] arr[i];arr[i] min;}} }插入排序 插入排序不断插入后续数字并且保证有序性所以被称为插入排序 要点 默认第一个数字有序逐渐递增有序序列内层循环实际上是冒泡排序的倒排 public static void insertSort(int[] arr) {// 因为默认第一个数字有序所以i从1开始i指针循环n-1次for (int i 1; i arr.length; i) {// j从i开始逐渐向后移动// 因为比较的是arr[j]和arr[j-1]所以j要1 for (int j i; j 1; j--) {// 如果arr[j]前一个数字比arr[j]大就交换位置if (arr[j] arr[j - 1]) {int temp arr[j];arr[j] arr[j - 1];arr[j - 1] temp;}}}}希尔排序 插入排序存在插入的小数字越小位置越靠后后移的次数越多的问题实际上会形成很多多余的交换位置 希尔排序就是为了解决这个问题而诞生的在**“最后的交换”**之前先让大数字尽可能往后移动小数字尽可能往前移动 这里的**“最后的交换”**实际上就是插入排序 是的你没听错希尔排序的最后一轮交换实际上就是插入排序 希尔排序运用了分组的思想 先分成n/2组然后是n/4……最后step 1时就是插入排序 public static void shellSort(int[] arr) {int step arr.length / 2;// 只要步长不是0就一直循环while (step ! 0) {// i指针先从步长位置开始循环for (int i step; i arr.length; i) {// 比较arr[j]和arr[jstep]的大小保证组内有序for (int j i - step; j 0; j--) {if (arr[j] arr[j step]) {int temp arr[j];arr[j] arr[j step];arr[j step] temp;}}}// 每次循环步长减半step / 2;}} 基数排序 又叫桶排序 排序方法很简单就是先比较数字的个位然后比较十位比较百位……最后就能排号序 但是实现起来比较复杂有很多需要注意的细节 个人认为八大排序里面除了快排和归并其次最难写的就是基数排序 public static void bucketSort(int[] arr) {int max arr[0];for (int ele : arr) {max Math.max(ele, max);}int maxLength ( max).length();// 1. 先定义好0~9十个桶,桶高是数组的长度int[][] baseBucket new int[10][arr.length];// 2. 桶计数器int[] bucketCount new int[10];for (int m 1; m maxLength; m) {int m1 1;// 循环数组获取个位数据放到桶中for (int i 0; i arr.length; i) {// 求余数int left (arr[i] / m1) % 10;// 查询目前桶中本列下一个插入位置int height bucketCount[left];// 插入baseBucket[left][height] arr[i];// 桶计数器1bucketCount[left] bucketCount[left];}m1 m1 * 10;// 下策遍历二维数组取出数字// 上策遍历桶计数器,不等于0就放进arrint i 0;for (int j 0; j 10; j) {if (bucketCount[j] ! 0) {for (int k 0; k bucketCount[j]; k) {arr[i] baseBucket[j][k];i;}// 下策新创建一个桶计数器// 上策清空桶计数器// 用完就清空bucketCount[j] 0;}}}}堆排序 堆排序排序思想排序流程代码 这篇博客写的很清楚了这里只展示代码 public static void heapSort(int[] arr) {for (int p arr.length; p 0; p--) {sort(arr, p, arr.length);}for (int i arr.length - 1; i 0; i--) {int temp arr[0];arr[0] arr[i];arr[i] temp;sort(arr, 0, i);}}public static void sort(int[] arr, int parent, int length) {int maxChild 2 * parent 1;while (maxChild length) {int rightChild maxChild 1;if (rightChild length arr[rightChild] arr[maxChild]) {maxChild rightChild;}if (arr[parent] arr[maxChild]) {int temp arr[parent];arr[parent] arr[maxChild];arr[maxChild] temp;parent maxChild;maxChild 2 * maxChild 1;} else {break;}}}
http://www.dnsts.com.cn/news/100246.html

相关文章:

  • 学院网站建设意义成都住建局官网楼盘销售情况
  • 自己做网站模版手机自己制作文字配图
  • 三亚建设网站Wordpress主题里的幻灯片怎么设置
  • 网站报价方案怎么做贵阳做网站seo
  • 网站开发需要提供哪些东西个人主页设计代码
  • 绵阳做网站完整的外贸出口流程
  • 重点实验室网站建设方案中国最好的建设网站
  • 济南网站建设公司晟创未来网站建设 入门知识
  • 网站建设品牌营销做cps的网络文学网站
  • 做网站 嵌入支付百度软文推广怎么做
  • 各大行业网站广西人事考试网
  • 网站服务器怎么优化广东省自然资源厅吴鋆
  • 北京上海网站建设公司网址二维码生成器
  • 哪个网站可以查当地建设项目烟台网站建设力荐企汇互联见效付款
  • 站群服务器装潢设计师培训
  • 电子商务网站开发与设计项目管理网站站长工具
  • 公司建设网站怎么作账杭州网站建设找思创网络
  • 建网站需要多少钱和什么条件有关wordpress 经验插件
  • 临沂手机网站建设银行外包不是人干的
  • 广告公司寮步网站建设哪家好qq空间wordpress
  • 中国建设银行官方网站悦生活嵌入式开发培训机构排名
  • 做素材网站服务器成都网站建设报价
  • 东莞网站竞价推广网站前端工资
  • 网站建设策划方案书下载软件产品开发流程图
  • 青岛安装建设股份有限公司网站安卓开发快速入门
  • 天津网站建设品牌推广做食品怎样选网站
  • 举例网站联盟网站维护 英语
  • 公司网站属于什么类型绝味鸭脖网站建设规划书
  • 如何建立网站教程网站优化的意义
  • 成都专业做网站wordpress 小说 批量