概述
1、冒泡排序
/*冒泡排序是指,对长度为n的数组进行n-1次冒泡。第一次冒泡,从左至右逐个检查,对相邻元素进行检查,若左边元素大于右边,则交换两者位置,直到检查到最后两个元素即将整个数组中最大的元素排到最后面;第二次冒泡,只检查前面n-1个元素,进行n-2次冒泡,即可将次大的元素排好。重复上述动作,共进行1+2+...+(n-1)次排序,即可完成对整个数组的排序。*/
public void maopao ()
{
// i代表每次冒泡排序的数组长度,排完一次待排数组长度减一
for(int i=n;i>1;i--)
{
Bubble(a,i);
}
for(int k=0;k<n;k++)
{
System.out.print("r 冒泡:"+a[k]);
}
}
static void Bubble(int b[],int n){
for(int j=0;j<n-1;j++){
if(b[j]>b[j+1]){
int temp=b[j+1];
b[j+1]=b[j];
b[j]=temp;
}
}
}
2、选择排序
/*选择排序是指首先在长度为n的数组中找到最大元素,然后将其与最后元素a[n-1]互换位置。随后,余下的n-1个元素中再寻找最大元素,把它移到a[n-2]。如此进行下去直到只剩下一个元素。*/
public void xuanze()
{
for(int size=n;size>1;size--)
{
int max=Max(a,size);
int temp=a[max];
a[max]=a[size-1];
a[size-1]=temp;
}
for(int k=0;k<n;k++)
{
System.out.print("r 选择:"+a[k]);
}
} static int Max(int c[],int n){
int pos=0;
for(int j=1;j<n;j++){
if(c[pos]<c[j]){
pos=j;
}
}
return pos;
}
3、插入排序
/*插入排序是指每次都将当前元素插入到前面已经排好的有序数组中去。第一次排序,比较最前面两个元素,若第二个元素大于第一个,则将第二个元素插到第一个前面;第二次排序,目的是将第三个元素插入到已经排好序的前两个数中,因此依次与第二个,第一个比较并交换位置。重复上述动作,直到最后一个元素a[n-1]成功插入到前面长度为n-1的有序数组中*/
public void charu()
{
for(int i=1;i<n;i++){
int t=a[i];
Insert(a,i,t);
}
for(int k=0;k<n;k++)
{
System.out.print("r 插入:"+a[k]);
}
} static void Insert(int d[],int n,int x){
int i=0;
for(i=n-1;i>=0&&x<d[i];i--){
d[i+1]=d[i];
d[i]=x;
}
}
测试:
public static void main(String[] args) {
int []a={25,24,12,76,98,101,90,28};
int n=a.length;
maopao();
xuanze();
charu();
}
最后
以上就是眯眯眼嚓茶为你收集整理的三种最基本的排序方法的全部内容,希望文章能够帮你解决三种最基本的排序方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复