1 冒泡算法:基本思想,对比相邻的元素值,如果满足条件就交换元素值,把比较小的元素值移动到数组前面,比较大的移动到数组后面
算法实现例子:
package Java.Arr5_0;
/*
* 时间:2018-4-29
* 作者:A_r_l
* 功能:测试数组冒泡排序法
* */
public class BubbleSortTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={2,4,5,6,7,8,9,10,12,13};//创建一个数组,乱序
BubbleSortTest storter=new BubbleSortTest();//创建冒泡排序对象
storter.sort(arr);//条用排序方法将数组排序
}
/**
* 冒泡排序、
* 要排序的数组
* */
public void sort(int[] arr) {
// TODO Auto-generated method stub
for (int i = 1; i < arr.length; i++) {
//判断相邻两个数,大的数排后面
for (int j = 0; j < arr.length-i; j++) {
if(arr[j]>arr[j+1]){
int temp=arr[i];//把第一个数保存到临时变量中
arr[j]=arr[j+1];//把第二个数保存到第一个元素单元中
arr[j+1]=temp;//把临时变量保存到第二个元素中去
}
}
}
showArr(arr);//输出冒泡排序后的元素;
}
private void showArr(int[] arr) {
/**
* 要显示的数组
* */
for(int i:arr){//遍历数组
System.out.print(">"+i);//输出买个数组元素
}
System.out.println();
}
}
2直接排序
思想:将指定排序的位置与其他数组元素分别比较,如果满足条件,就交换元素值,
例子:
package Java.Arr5_0;
/**
* 功能;测试数组直接排序
* 时间:2018-04-30
* 作者:A_r_l
* */
public class SelectSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={4,5,3,6,7,89};//创建一个数组
SelectSort sorte=new SelectSort();//创建一个调用排序的数组对象
sorte.sort(arr);//创建一个调用数组排序方法
}
/**
* 要排序的数组
* */
private void sort(int[] arr) {
// TODO Auto-generated method stub
int index;//
for (int i = 1; i < arr.length; i++) {//元素值第一个位置的元素
index=0;
for (int j = 0; j <= arr.length-i; j++) {
if(arr[j]>arr[index]){
index=j;
}
}
int temp=arr[arr.length-i];//第一个元素值保存到临时变量
arr[arr.length-i]=arr[index];//把第二个元素值保存带第一个元素值单元中
arr[index]=temp;//把临时变量(第一个元素值保存到第二个元素中)
}
showArr(arr);
}
private void showArr(int[] arr) {
// TODO Auto-generated method stub
for(int i:arr){//遍历数组
System.out.print("》"+i);//输出数组
}
System.out.println();
}
}
3反转排序
思想:以相反的顺序把原数组重新排序
例子:
package Java.Arr5_0;
/**
* 功能:测试反转排序
* 时间:2018-05-02
* 作者;A_r_l
* */
public class ReverseSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={10,20,30,40,50,60,70,80,90,8};//创建数组
ReverseSort soretReverseSort=new ReverseSort();//创建数组对象
soretReverseSort.sort(arr);//调用数组对象的方法
}
/**
* 直接选择排序法
* */
public void sort(int[] arr) {
System.out.print("数组原有内容:");
showArr(arr);
int temp;
int len=arr.length;
for(int i=0;i<len/2;i++){
temp=arr[i];
arr[i]=arr[len-1-i];
arr[len-1-i]=temp;
}
System.out.print("数组反转之后的内容:");
showArr(arr);//输出数组
}
private void showArr(int[] arr) {
// TODO Auto-generated method stub
for(int i:arr){
System.out.print("\t"+i);//输出买个数组元素值
}
System.out.println();
}
}