简单Java冒泡排序 二分查找 快速排序
2015-05-26 11:37
429 查看
数据储存一般用数组或容器集合,下标第一位都是0,数组有一维数组和二维数组,集合有List,Set,Map:01 010 10 0x10
与(&)、非(~)、或(|)、异或(^) << >>
&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
//冒泡排序法
//快速排序法
与(&)、非(~)、或(|)、异或(^) << >>
&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
//冒泡排序法
public static void main(String[] args) { int num[]={5,4,3,2,1}; for(int i=0;i<num.length-1;i++) { for(int j=0;j<num.length-1;j++) { if(num[j]>num[j+1]) { int k=num[j]; num[j]=num[j+1]; num[j+1]=k; } } } for(int i=0;i<num.length;i++) { System.out.println(num[i]); } System.out.println("二分查找法:"+BinarySearch(num,5)); } //二分法需要数据已经排好顺序 private static int BinarySearch(int num[],int no) { int start=0; int end=num.length-1; int middle; while(start<=end){ middle=(start + end)/2; if(num[middle]==no){ return middle; } if(num[middle]>no){ end=middle-1; } if(num[middle]<no){ start=middle+1; } } return -1; }
//快速排序法
public int getMiddle(int[] list, int low, int high) { int tmp = list[low]; //数组的第一个作为中轴 while (low < high) { while (low < high && list[high] >= tmp) { high--; } list[low] = list[high]; //比中轴小的记录移到低端 while (low < high && list[low] <= tmp) { low++; } list[high] = list[low]; //比中轴大的记录移到高端 } list[low] = tmp; //中轴记录到尾 return low; //返回中轴的位置 } public void quickSort(int[] list, int low, int high) { if (low < high) { int middle = getMiddle(list, low, high); //将list数组进行一分为二 quickSort(list, low, middle - 1); //对低字表进行递归排序 quickSort(list, middle + 1, high); //对高字表进行递归排序 } }
相关文章推荐
- 简单的快速排序与二分查找
- 简单二分查找模板(查找)
- 折半查找(二分查找)——简单说明
- 用php实现简单的二分查找
- 【Cuda并行编程之一】二分查找的探究以及Cuda的简单实现&&相关面试题介绍
- 各种常用类,hashcode相关,简单排序,二分查找,显示时间相关内容
- c++ 实现快速排序与二分查找 源代码
- Can you solve this equation?(二分查找的简单应用)
- 逻辑清晰、简单的二分查找
- 【LintCode 简单】457. 经典二分查找问题
- [Algorithms] 分治算法(二分查找, 合并排序, 插入排序, 快速排序(coming))
- 二分查找及简单应用
- 二分查找真的有你想象中那么简单吗?
- HDU-2899(简单数学问题+二分查找)
- Can you solve this equation?(二分查找的简单应用)
- 查找算法系列之简单查找:顺序查找、二分查找、分块查找
- 简单的二分查找
- 二分查找c++简单模板
- JAVA冒泡排序和二分查找的实现
- C语言使用stdlib.h库函数的二分查找和快速排序的实现代码