1.冒泡排序
基本思想:
对比相邻元素值,满足条件则交换元素值,把较小的元素移动到数组前面,较大的元素移动到数组后面。(较小的元素像气泡一样从底部上升到顶部)
算法实现:
public void maopaosort(int[] array){
for(int i=1;i<array.length;i++){
for(int j=0;j<array.length-i;j++){
if(array[j]>array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
完整实例:
public class MaopaoSort{
public static void main(String[] args){
int[] array={2,4,1,12,5};
MaopaoSort a=new MaopaoSort();
a.maopaosort(array);
}
public void maopaosort(int[] array){
for(int i=1;i<array.length;i++){
for(int j=0;j<array.length-i;j++){
if(array[j]>array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
shuchu(array);
}
public void shuchu(int[] array){
for(int i:array){
System.out.print(i+" ");
}
System.out.println();
}
}
运行结果: 1 2 4 5 12
2.直接选择排序
基本思想:
将指定排序位置元素与其他数组元素分别对比,如果满足条件则交换元素值。(与冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会快些)
算法实现:
public void zjxzsort(int[] array){
int index;
for(int i=1;i<array.length;i++){
index=0;
for(int j=1;j<=array.length-i;j++){
if(array[j]>array[index])
{
index=j;
}
}
int temp=array[array.length-i];
array[array.length-i]=array[index];
array[index]=temp;
}
}
完整实例:
public class ZjxzSort{
public static void main(String[] arg){
int []array={22,11,42,25,2,3};
ZjxzSort a=new ZjxzSort();
a.zjxzsort(array);
}
public void zjxzsort(int[] array){
int index;
for(int i=1;i<array.length;i++){
index=0;
for(int j=1;j<=array.length-i;j++){
if(array[j]>array[index])
{
index=j;
}
}
int temp=array[array.length-i];
array[array.length-i]=array[index];
array[index]=temp;
}
}
public void shuchu(int[] array){
for(int i:array){
System.out.print(i+" ");
}
System.out.println();
}
}
运行结果: 2 3 11 22 25 42
3.反转排序
基本思想:
把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,依此类推,直到把所有数组元素反转替换。
算法实现:
public void fanzhuansort(int[] array){
int temp;
for(int i=0;i<array.length/2;i++){
temp=array[i];
array[i]=array[array.length-1-i];
array[array.length-1-i]=temp;
}
}
完整实例:
public class FanzhuanSort{
public static void main(String[] args){
int[] array={1,2,3,4,5,6};
FanzhuanSort a=new FanzhuanSort();
a.fanzhuansort(array);
}
public void fanzhuansort(int[] array){
int temp;
for(int i=0;i<array.length/2;i++){
temp=array[i];
array[i]=array[array.length-1-i];
array[array.length-1-i]=temp;
}
shuchu(array);
}
public void shuchu(int[] array){
for(int i:array){
System.out.print(i+" ");
}
System.out.println();
}
}
运行结果: 6 5 4 3 2 1