冒泡排序
文章图片
选择排序
文章图片
插入排序
文章图片
import java.util.Arrays;
/**
* Created by gy on 2017/8/21.
* email : guoyang000111@163.com
* 数组排序法
*/
public class SelectSort {
public static void main(String[] args) {
int a[]={5,2,8,4,1,9,16};
System.out.println("冒泡排序法:"+Arrays.toString(bubble(a)));
int b[]={5,2,8,4,1,9,16};
System.out.println("选择排序法"+Arrays.toString(select(b)));
int c[]={5,2,8,4,1,9,16};
System.out.println("插入排序法"+Arrays.toString(insert(c)));
System.out.println("位置:"+find(a,8));
}/**
* 冒泡法
* @param a 排序数组
* @return 计算完的数组
*/
public static int [] bubble(int a[]){
for(int i=0;
ia[j]){
min=j;
}
}
if(min!=i){
int temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
return a;
}/**
* 插入排序法 优于前两种
* @param a 排序数组
* @return 计算完的数组
*/
public static int [] insert(int a[]){
int compare;
for(int mark=1;
mark0&&a[compare-1]>temp){
a[compare]=a[compare-1];
compare--;
}
a[compare]=temp;
}
return a;
}/**
* 二分法查找,前提是数组已经有序 小到大的
* @param a 由小到大的有序数组
* @param value 需要找的值
* @return
*/
public static int find(int a[],int value){
int start=0;
int end=a.length-1;
while(end>=start){
int index =(start + end )/2;
if(a[index]==value){
return index;
}else if(a[index]>value){
end=index-1;
}else{
start = index+1;
}
}
return a.length;
}}
推荐阅读
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 数据结构和算法|LeetCode 的正确使用方式
- 先序遍历 中序遍历 后序遍历 层序遍历
- 数据结构|C++技巧(用class类实现链表)
- 数据结构|贪吃蛇代码--c语言版 visual c++6.0打开
- 算法|算法-二分查找
- 数据结构学习指导|数据结构初阶(线性表)
- leetcode题解|leetcode#106. 从中序与后序遍历序列构造二叉树
- java|ObjectOrientedProgramming - 面向对象的编程(多态、抽象类、接口)- Java - 细节狂魔