1.插入排序算法:
将一组无序的数字排列成一排,左端第一个数字为已经完成排序的数字,其他为未排序数字。然后,从左到右依次将未排序的数字插入到已经排序的数字中。
示例:5 3 6 9 4 7 2
import java.io.*;
public class my {
public static void main(String args[])
{
int[] a={5,3,6,9,4,7,2};
for(int i=1;i<a.length;i++){
//int tmp=a[i];
for(int j=0;j<i;j++){
if(a[i]<a[j]){
int tmp=a[i];
for(int k=i;k>j;k--)
a[k]=a[k-1];
a[j]=tmp;
}
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}
2.选择排序
选取未排序列中的最大数,放在尾部(和尾部元素调换),作为有序序列;然后再选出未排序列中的最大数,和尾部调换,作为有序序列的一个元素;如此反复。
import java.io.*;
public class my {
public static void main(String args[])
{
int[] a={5,3,6,9,4,7,2};
for(int i=a.length-1;i>=1;i--){
int max=0;
int tmp=a[0];
for(int j=1;j<=i;j++){
if(a[j]>tmp){
tmp=a[j];
max=j;
}
}
a[max]=a[i];
a[i]=tmp;
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}
3.冒泡排序
首先将一组无序的数字排列成一排,再从做点开始将相邻两个数字进行比较,将大的放到后面。每轮都是将未排序列中的最大数字冒泡到最后成为有序列的一员。
import java.io.*;
public class my {
public static void main(String args[])
{
int[] a={5,3,6,9,4,7,2};
for(int i=a.length-1;i>0;i--){
int max=a[0];
int tmp=0;
for(int j=1;j<=i;j++)
{
if(a[j]>max) {
tmp=j;
max=a[j];
}
}
a[tmp]=a[i];
a[i]=max;
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}