冒泡排序、二分法查找基于Java的简单实现
2017-06-29 20:16
316 查看
1.冒泡排序:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
一个数比完,再开始另一个数
代码:
还有这种更符合冒泡的,从下往上比较:
输出都为:
二分法查找:
对于大量数据可以使用,数列要是先是有序的,假定升序,然后从中间开始搜寻,如果比中间数小,再从左边的中间找,以此类推
输出:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
一个数比完,再开始另一个数
代码:
import java.util.Arrays; public class Demo2 { public static void main(String[] args) { int []values={5,6,8,1,12,19,56,32}; bubblesort(values); System.out.println(Arrays.toString(values)); } public static void bubblesort(int []values){ int temp; for(int i=0;i<values.length;i++){ for(int j=0;j<values.length-1-i;j++){ if(values[j]>values[j+1]){ temp=values[j]; values[j]=values[j+1]; values[j+1]=temp; } } } } }
还有这种更符合冒泡的,从下往上比较:
import java.util.Arrays; public class Demo2 { public static void main(String[] args) { int []values={5,6,8,1,12,19,56,32}; bubblesort(values); System.out.println(Arrays.toString(values)); } public static void bubblesort(int []values){ int temp=0; for(int i=0;i<values.length;i++){ for(int j=values.length-1;j>i;j--){ if(values[j]<values[j-1]){ temp=values[j-1]; values[j-1]=values[j]; values[j]=temp; } } } } }
输出都为:
[1, 5, 6, 8, 12, 19, 32, 56]
二分法查找:
对于大量数据可以使用,数列要是先是有序的,假定升序,然后从中间开始搜寻,如果比中间数小,再从左边的中间找,以此类推
import java.util.Arrays; public class BinarySearch { public static int search(int a[],int nums){ int low=0; int high=a.length-1; while(low<=high){ int mid=(low+high)/2; if(nums>a[mid]){ low=mid+1; }else if(nums<a[mid]){ high=mid-1; }else{ return mid; } } return -1; } public static void main(String[] args) { int []a={5,9,6,3,56,157,535,464,158}; Arrays.sort(a); int find=BinarySearch.search(a, 3); if(find==-1){ System.out.println("找不到数值"); }else{ System.out.println("找到数值,索引:"+find); } } }
输出:
找到数值,索引:0
相关文章推荐
- Java实现冒泡排序与二分法查找
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- Java实现简单的二分法查找int数组中的某值
- 冒泡排序,简单插入排序,快速排序,二分查找的JAVA实现
- java基于TCP的socket编程简单实现[代码实践过]
- JAVA之冒泡排序与简单选择排序的实现
- JAVA实现简单的冒泡排序与选择排序
- 排序与查找简单算法 java代码实现
- JAVA 二分法查找实现
- java实现二分法查找
- 数据结构书中基于整数的简单排序Java实现,巩固一下基础
- 【java并发】基于JUC CAS原理,自己实现简单独占锁
- 使用java基于pushlet和bootstrap实现的简单聊天室
- JAVA 二分法查找实现
- 基于java实现的简单网页日历功能,有兴趣得可以把它转换到前端实现
- 一个简单的冒泡排序和快速排序算法java实现
- 二分法查找[折半查找][Java实现]
- 基于Java实现简单Http服务器之一
- 基于Java的简单网络爬虫的实现--下载Silverlight视频
- Java 实现二分法查找