java常见的排序算法

来源:互联网 发布:usb电流检测软件 编辑:程序博客网 时间:2024/06/02 02:26

1.Arrays.sort(数组);(默认从小到大)



2.冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换他们两个。  
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。  
针对所有的元素重复以上的步骤,除了最后一个。  
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 

例如:数字长度为7,下标0-6,第一轮比较0-5 第二轮i+1-6

int n=m.length;

for(int i=0;i<n-1;i++){

for(int j=i+1;j<n;j++){

int temp;

if(m[i]>m[j]){

temp=m[i];

m[i]=m[j];

m[j]=temp;

}

}

}



3.选择排序(和冒泡差不多,也是两轮n-1,n 只不过冒泡排序比的是大小直接排序,选择排序先比较下标再交换数据)

将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

int n=m.length;

for(int i=0;i<n-1;i++){

int min=i;

for(int j=i+1;j<n;j++){

if(m[min]>m[j]){

min=j;

}

}

if(min!=i){

int temp;

temp=m[min];

m[min]=m[i];

m[i]=temp;

}

}



4.插入排序

选择一个数组中的数据,通过不断的插入比较最后进行排序

int n=m.length;

for(int i=1;i<n;i++){

for(int j=i;j>0;j--){

if(m[j-1]>m[j]){

int temp;

temp=m[j-1];

m[j-1]=m[j];

m[j]=temp;

}

}

}



0 0
原创粉丝点击