java基础 选择排序、冒泡排序、折半查找法
2017-03-06 22:35
239 查看
1、选择排序
选择排序,逐次选择最大的或是最小的元素,放到起始位置或是末尾位置,直到排序完成
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,根据大小比较相邻的两个元素,如果他们的顺序不符合要求就把他们交换过来,直到目标数组排序结束。
package sort;
//冒泡排序
/**
* 比较目标数据中相邻的两个元素,如果大小位置不符,则交换位置;
* 逐次进行,直到排序完成
* @author 空空
*
*/
public class BubbleSort {
public static void main(String[] args){
int[] data = {2,10,5,3,15,22,17,33,21};
for(int i = 0;i < (data.length-1)/2;i++){
for(int j = 0;j < data.length-1;j++){
if(data[j] > data[j+1]){
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
for(int num:data){
System.out.print(num+",");
}
}
}
3、折半查找法
![](https://img-blog.csdn.net/20170306230443999?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSG9taW5nX3F1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
package sort;
/**
* 必须采用顺序存储结构
* 必须按关键字大小有序排列
* @author 空空
*
*/
public class TestBinarySearch {
public static int binarySearch(int a[],int num){
int last = a.length - 1;
int first = 0;
while (first <= last) {
int middle = (first + last)/2;
if (a[middle] == num) {
return middle;
}
else if (a[middle] > num) {
last = middle - 1;
}
else {
first = middle + 1;
}
}
return -1;
}
/**
* 数组查找
* 确定中间位置
* 查找目标元素,返回相应的下标位置
* @param args
*/
public static void main(String[] args) {
int[] src = {7,14,18,21,23,29,31,35,38,42};
System.out.println(binarySearch(src, 23));
}
}
选择排序,逐次选择最大的或是最小的元素,放到起始位置或是末尾位置,直到排序完成
package sort; //选择排序 /** * 选择排序 * 在未排序的数组中找到最大或最小的,存放在起始位置; * 再从剩余的未排序元素中寻找最大或最小的,然后放在末尾位置; * 以此类推,直到所有元素均排序完毕; * @author 空空 * */ public class ChoiceSort { public static void main(String[] args){ int data[] = { 2, 10, 7, 19, 30, 17, 22, 5, 8, 1 }; int i,j,k,temp = 0; for(i = 0;i < data.length;i++){ k = i; for(j = i + 1;j < data.length;j++){ if(data[j] < data[k]){ k = j; } if(k != i){ temp = data[i]; data[i] = data[k]; data[k] = temp; } } } for(int num:data){ System.out.print(num+","); } } }2、冒泡排序
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,根据大小比较相邻的两个元素,如果他们的顺序不符合要求就把他们交换过来,直到目标数组排序结束。
package sort;
//冒泡排序
/**
* 比较目标数据中相邻的两个元素,如果大小位置不符,则交换位置;
* 逐次进行,直到排序完成
* @author 空空
*
*/
public class BubbleSort {
public static void main(String[] args){
int[] data = {2,10,5,3,15,22,17,33,21};
for(int i = 0;i < (data.length-1)/2;i++){
for(int j = 0;j < data.length-1;j++){
if(data[j] > data[j+1]){
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
for(int num:data){
System.out.print(num+",");
}
}
}
3、折半查找法
package sort;
/**
* 必须采用顺序存储结构
* 必须按关键字大小有序排列
* @author 空空
*
*/
public class TestBinarySearch {
public static int binarySearch(int a[],int num){
int last = a.length - 1;
int first = 0;
while (first <= last) {
int middle = (first + last)/2;
if (a[middle] == num) {
return middle;
}
else if (a[middle] > num) {
last = middle - 1;
}
else {
first = middle + 1;
}
}
return -1;
}
/**
* 数组查找
* 确定中间位置
* 查找目标元素,返回相应的下标位置
* @param args
*/
public static void main(String[] args) {
int[] src = {7,14,18,21,23,29,31,35,38,42};
System.out.println(binarySearch(src, 23));
}
}
相关文章推荐
- java基础之----选择排序 冒泡排序
- 排序基础之插入排序、冒泡排序、选择排序详解与Java代码实现
- java基础之选择排序和冒泡排序
- Java基础04:选择排序;冒泡排序;折半查找;二位数组
- java基础之----选择排序 冒泡排序
- 黑马程序员_java基础学习笔记之排序算法(选择排序、冒泡排序
- java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
- java基础--选择排序和冒泡排序
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
- JAVA基础再回首(十一)——数组高级(冒泡排序和选择排序)、Arrays类、基本类型包装类、Integer类
- Java 基础 快速实现 冒泡排序 和 选择排序
- 【java基础】选择排序and冒泡排序
- 【java基础】选择排序and冒泡排序
- Java基础——选择排序、冒泡排序
- Java基础---选择排序和冒泡排序
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- 冒泡排序、选择排序、插入排序、快速排序算法的时间性能分析(java实现)
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- Java程序语言 冒泡排序、选择排序、插入排序
- 基础排序——冒泡排序、选择排序、插入排序的讲解、代码实现