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

爱站工具包手机版网站建设运行维护合同

爱站工具包手机版,网站建设运行维护合同,wordpress开启链接,营销型网站建设及推广一、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小…

一、冒泡排序

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。(相邻对比交换位置)

这里依旧通过代码练习来实现:

package com.easy2;import java.util.Arrays;public class EasyF {public static void main(String[] args) {//排序//冒泡排序 快速排序 选择排序 插入排序//冒泡排序***********int[] arr={111,45,73,82,44};int temp;for(int j=0;j<arr.length-1;j++) {//确定了几个最大值for (int i = 0; i < arr.length -j-1; i++) {//元素下标//当前元素 arr[i]//下一个元素 arr[i+1]if (arr[i] > arr[i + 1]) {//交换位置 交换值temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}}}System.out.println(Arrays.toString(arr));}
}

二、快速排序

与冒泡排序有着紧密联系的就是快速排序

快速排序的基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列

依旧见代码:

package com.easy2;
import java.util.Arrays;
public class EasyG {public static void main(String[] args) {//快速排序int[] arr={9,8,3,5,2};sort(arr,0,arr.length-1);System.out.println(Arrays.toString(arr));}public static void sort(int[] arr,int begin,int end){//如果区间不只一个数if(begin<end){int temp=arr[begin];//设置数组的开始元素为基准值int i=begin;//从左向右的左指针,指示当前左位置int j=end;//从右向左的右指针,指示当前右位置//不重复遍历while(i<j){//当右边的数大于基准数时,略过,继续查找while(i<j&&arr[j]>temp){j--;}//右边小于基准数的值填入左边arr[i]=arr[j];//当左边的数小于基准数时,略过,继续查找while(i<j&&arr[i]<temp){i++;}//左边大于基准数的值填入右边arr[j]=arr[i];}arr[i]=temp;//或者arr[j]也行,此时ij下标重合sort(arr,begin,i-1);//一个递归sort(arr,i+1,end);//两个递归}//如果区间只有一个数,返回elsereturn;}
}

三、选择排序

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。(拿出最大或最小,然后在剩余中再拿最大或最小)

见代码:

package com.easy2;import java.util.Arrays;public class EasyH {public static void main(String[] args) {//选择排序//选择最大或最小,最菜的出来int[] arr={9,8,3,5,2};sort(arr);System.out.println(Arrays.toString(arr));}public static void sort(int[] array){//这里是找最小,并交换//每次都把最小的交换到前面,即可排好序int length = array.length;for(int i = 0; i < length; i++){int minIndex = i;for(int j = i + 1; j < length; j++){if(array[j] < array[minIndex]){minIndex = j;}}int temp = array[i];array[i] = array[minIndex];array[minIndex] = temp;}}
}

四、插入排序

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。(将未排序的,在已排序中找到位置插进去)

package com.easy2;import java.util.Arrays;public class EasyI {//插入排序public static void main(String[] args) {int[] arr={9,8,3,5,2};sort(arr);System.out.println(Arrays.toString(arr));}public static void sort(int[] arr){int temp,j;for(int i=0;i<arr.length;i++){temp=arr[i];//先存储最开始arr[i]的值for(j=i-1;j>=0&&arr[j]>temp;j--){arr[j+1]=arr[j];}//j--后面间接交换了两个值arr[j+1]=temp;}}
}

五、二分查找算法:

二分查找法
返回要查找数据的下标,如果没有找到,则返回-1
只能处理已经排序好的序列

见代码及注释:

package com.easy2;
public class EasyJ {//二分查找法//返回要查找数据的下标,如果没有找到,则返回-1//只能处理已经排序好的序列public static void main(String[] args) {int[] arr={1,2,3,4,5,8,10,13,18,22,47,49,66,78};int dest=66;int result = binarySearch(arr, dest);if(result == -1) {System.out.println("未找到元素 " + dest);} else {System.out.println("元素 " + dest + " 的下标是: " + result);}}public static int binarySearch(int[] arr, int dest) {int left=0;int right=arr.length-1;while(left<=right){int mid=(left+right)/2;//整数运算结果是整数if(arr[mid]==dest){return mid;}else if(arr[mid]>dest){right=mid-1;}else if(arr[mid]<dest){left=mid+1;}}return -1;}
}

 


文章转载自:

http://fGr9nxd1.mngyb.cn
http://nRvT1cQW.mngyb.cn
http://c53bhpVx.mngyb.cn
http://bmFlGfLC.mngyb.cn
http://QZ5C7rg8.mngyb.cn
http://GQ461jR6.mngyb.cn
http://Ln1Dmy7u.mngyb.cn
http://cVjVMWBr.mngyb.cn
http://v3LTQybR.mngyb.cn
http://v4t5G0bz.mngyb.cn
http://YZWDnwao.mngyb.cn
http://9WVKkxJ4.mngyb.cn
http://fEWdv5T8.mngyb.cn
http://W6oKfeKl.mngyb.cn
http://hjgb4TND.mngyb.cn
http://CVt6Jk7B.mngyb.cn
http://T4QP21bC.mngyb.cn
http://ViOtlz77.mngyb.cn
http://dhM1E0KL.mngyb.cn
http://5T8vxJhe.mngyb.cn
http://1GoPc70e.mngyb.cn
http://RTNw47NT.mngyb.cn
http://tWrVK8w7.mngyb.cn
http://yzF9DK53.mngyb.cn
http://KMLPrJmT.mngyb.cn
http://zV6Ys2ji.mngyb.cn
http://MxjHbl1o.mngyb.cn
http://V34rJ21S.mngyb.cn
http://V6Ow215O.mngyb.cn
http://dAdyGMMU.mngyb.cn
http://www.dtcms.com/wzjs/766338.html

相关文章:

  • 南宁网站建设网站建设酒店预定类网站建设
  • 微网站菜单让别人做网站注意事项
  • ps手机网站制作做网站一天
  • 响应式营销型网站建设wordpress 有广告
  • 信阳高端网站建设动画设计师工作内容
  • 网站做了301怎么查看跳转前网站房地产估价师
  • 企业网站留言wordpress 程序员主题
  • 郑州哪里做网站最好网站开发与应用就业方向
  • 大连网站开发公司重庆seo代理价格
  • 谷歌外贸网站ui首页界面设计
  • 漳州平台网站建设东航集团客户网站是哪家公司建设
  • 网站建设与维护协议wordpress 自定义评论
  • 网站运行与维护设计理念万能模板
  • asp网站路径h5在线设计平台
  • 个人网站整站源码下载软件开发专业技能怎么写
  • 设计素材的网站网站建设不包括哪个阶段
  • 网站怎么连接网网红营销网站
  • 苏州网站开发公司济南兴田德润地址网站查询工具
  • 英文网站制作++官网个人做网站给手机发短信
  • wordpress网站突然打不开上海网站快速排名提升
  • 东莞建设网站的位置邯郸网站建设产品介绍
  • 正规的锦州网站建设网站建设的预算
  • 建设网站 xp甘肃省建设厅官方网站质监局
  • 北京专业建网站的公司谁知道苏州溪城水处理网站谁做的
  • 济南网站推广效果盐山网站开发
  • 小米路由2 做网站免费友情链接网
  • 爱情动做网站推荐织梦做的网站用什么数据库
  • 做营销网站建设价格网站的月度流量统计报告怎么做
  • 做国际网站怎么做国外搜索引擎
  • 做网站有啥软件在线视频下载网站如何做