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

淄博电商网站建设乔托运智能建站

淄博电商网站建设,乔托运智能建站,wordpress免登录支付,浙江产品设计公司冒泡排序 时间复杂度为 O(n^2) 原理 比较相邻的元素. 如果第一个比第二个大,就交换他们两个.依次比较每一对相邻的元素—结果 : 最后的元素是这组数中最大的重复上述步骤 , 除了最后一个[]因为最后一个已经是排好序的了(这组数中最大的那个)]持续对越来越少的元素进行如上…冒泡排序 时间复杂度为 O(n^2) 原理 比较相邻的元素. 如果第一个比第二个大,就交换他们两个.依次比较每一对相邻的元素—结果 : 最后的元素是这组数中最大的重复上述步骤 , 除了最后一个[]因为最后一个已经是排好序的了(这组数中最大的那个)]持续对越来越少的元素进行如上步骤 , 直到没有任何一对数字需要比较 核心代码 public static void bubbleSort(int[] arr) {for(int i0;iarr.length-1;i) {for(int j0;jarr.length-i-1;j) { //每次都少排最后一个if(arr[j]arr[j1]) { //把大的往后放int t arr[j];arr[j] arr[j1];arr[j1] t;}}}}快速排序 归并排序和快速排序都是基于“分而治之”的算法思想 public static int[] qSort(int arr[],int start,int end){int pivot arr[start]; //一般定义arr数组的首元素为key值int i start; int j end;while(ij){//从左往右找,直到找到一个大于等于key值的while(ij arr[i]pivot){i; } //从右往左找直到找到一个小于等于key值的while(ij arr[j]pivot){j—-; } if(ij arr[i]arr[j]){ //如果两值相等那么令左侧指针继续向后移i; }else{ //如果两值不同就交换两值int t arr[i];arr[i] arr[j];arr[j] t; }}if(i-1start) arrqSort(arr,start,i-1); //递归将小于key值的那些排序。并将这部分排完序的数组原数组的一部分赋值给原数组if(j1end) arrqSort(arr,j1,end); //递归将大于key值的那些排序。同上return arr; }归并排序 时间复杂度 O(nlogn)速度仅次于快速排序 归并 就是先将带排序的数组不断拆分指导拆分到只剩一个元素的时候这时我们再把他们合并为两个有序的数组得到长度更长的有序数组。然后按照这样的思路一层一层的合并直到整个数组有序。怎么合并 要借助一个和原数组等长的新数组这也是个典型的 以空间换时间的 做法 // import java.util.Arrays;public class Main{public static void main(String[] args){int[] arr {1,4,3,7,14,6,10};// System.out.println(Arrays.toString(arr));sortArray(arr);for(int i0;iarr.length;i){System.out.print(arr[i] );}}//归并排序的入口public static int[] sortArray(int[] arr){//定义一个辅助数组tempint[] temp new int[arr.length];//进行归并排序mergeSort(arr,0,arr.length-1,temp);//返回排好序的原数组return arr;}//归并排序//实现归并的分public static void mergeSort(int[] arr,int left,int right,int[] temp){//如果只有一个元素就不需要继续划分只有一个元素的区间本来就是有序的// if(left right) return;//当left right 说明该区间是由一组数组成需要继续划分if(left right){int mid (leftright)/2; //这段区间的中值用来划分左右区域mergeSort(arr, left, mid, temp); //递归划分左半区mergeSort(arr, mid1, right, temp); //递归划分右半区//合并已经排序的部分左半区和右半区从只有一个元素的区间开始merge(arr,left,mid,right,temp);}} //实现归并的合 //arr是原数组left是左半区的起始位置mid是左半区的结束位置right是右半区的结束位置temp是辅助数组public static void merge(int[] arr,int left,int mid,int right,int[] temp){int i left; //左半区的起始位置int j mid1; //右半区的起始位置int k left; //辅助数组的位置索引//合并//在左半区的位置索引范围内和右半区的位置索引范围内比较左右半区对应索引位置得的数值的大小小的先放入temp数组中while(imid jright){//用三元运算符 更简洁 和下面的if else语句一个意思temp[k] arr[i] arr[j] ? arr[i] : arr[j];/*if(arr[i]arr[j]) //左半区剩余第一个元素更小temp[k] arr[i]; //意思是先让temp[h] arr[i]再让kielse //右半区剩余第一个元素更小temp[k] arr[j];*/}//合并剩余元素当其中一个半区的位置索引结束时另一个半区可能还有剩余有序的元素--》直接合并到temp数组中即可//合并左半区剩余元素while(i mid)temp[k] arr[i];while(j right)temp[k] arr[j];//temp数组 复制回 arr数组// for(int q0;qtemp.length;q){// arr[q] temp[q];// }while(left right){arr[left] temp[left];left;}} }
http://www.w-s-a.com/news/819510/

相关文章:

  • 网站维护具体做啥如何开发wap网站
  • 公司网站设计费计入什么科目潍坊公司网站制作
  • 拖拽式网站开发模具钢东莞网站建设
  • 彩票娱乐网站建设模块化网站开发
  • 孝感网站设计用自己的名字设计头像
  • 高明网站建设哪家好深圳vi设计公司全力设计
  • 工程技术cpu游戏优化加速软件
  • 一起做网店网站入驻收费wordpress 自定义评论样式
  • 深圳高端网站建设公司排名app软件开发sh365
  • 泰州网站整站优化惠州做网站多少钱
  • 做博客网站的php代码一建论坛建工教育网
  • 邢台网站制作费用单页营销网站后台
  • 红色网站建设的比较好的高校用vs2010做购物网站
  • 网站域名备案号查询网页设计实验报告总结模板
  • 什么软件 做短视频网站好大型论坛网站建设
  • 视频网站用什么cms网络运营与维护主要做什么
  • 设计网站主页要多少钱赣州制作网站百度
  • 什么叫高端网站定制网站收录大幅度下降
  • 汝城县网站建设公司aspx网站实例
  • 专业微网站营销diywap手机微网站内容管理系统
  • 盗版做的最好的网站温州logo设计公司
  • 网站建设 中山南充微网站建设
  • 企业网站更新什么内容免费设计软件下载
  • 夏天做哪些网站能致富做网站怎么每天更新内容
  • 个人网站的设计与开发网站建设流程中哪些部分比较重要
  • 招聘网站如何建设中国计算机网络公司排名
  • 工信部网站备案规定厦门在线制作网站
  • 商丘网站公司智联招聘手机app下载
  • 江西专业南昌网站建设中国专业的网站建设
  • 物流企业网站建设方案招标网站有哪些