1.冒泡排序 :
比较两个相邻的元素,将值大的元素交换到右边;有几个元素就要比较n-1次。java实现代码是通过两个for循环来实现。
int a[] = {6,3,8,2,9,1};
for(int i =0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp = a[j+1];
a[j+1]=a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
运行结果:
2.选择排序:
每次从现有的数据中挑选出一个最小的直接放在最前面;第二次再将剩余的数据进行排序,再拿出最小的放在前面,以此类推。
n个元素要进行 n-1次排序,把索引是0的元素和索引是1以及以后的元素都进行比较,比较完毕后把最小的元素和索引0的元素交换位置。
int[] arr = {5,2,8,4,9,1};
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j]){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
运行结果:
3.插入排序:
就是将一个数插入到其他已有序列的适当位置中去。从序号1开始与之前的元素比较,放入合适的位置。
int c[]={5,2,8,4,1,9,16};
public static int [] insert(int a[]){
int k ;
for (int i = 1; i < a.length; i++) {
int temp = a[i];
k = i;
while(k>0 && a[k-1]>temp){
a[k]= a[k-1];
k--;
}
a[k] = temp;
}
System.out.println(Arrays.toString(a));
return a;
}
运行结果:插入排序法[1, 2, 4, 5, 8, 9, 16]
4.二分查找:
int a[]={1,2,4,5,8,9,16};
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;
}
运行结果: