排序方法
对于一个初学Java,c这类的编程语言,是无论也避不开排序方法的。但是如何学好一个排序方法,还得要注重积累。完善出自己的方法。做到一个真正懂方法的人。
冒泡排序
理论:
对于有一组无序的数字,要想经过一段代码,就自动的把它按照排序(升序、降序)的规则,进行排序。做到有条不紊。
冒泡排序的基本思想:对比相邻的元素值,若满足一定的条件,就进行交换元素(数字),把较小(大)的数字移动到前面,较大的数字移动到后面。换句话来说,就是利用调换元素的下标位置,进行排序。
计算过程:
利用双层循环的方式来进行控制,外循环来控制排序的轮数,一般以排序的数组的元素长度减去1次。最后一次就剩下他自己,不需要在进行比较了。内循环来对比两个相邻的元素大小,来判断我们的元素是不是要进行调换。
例如,在这个6个数字的排序过程中,每进行一次循环得到的结果如图。
算法实现:
a:方法
public class Bubblesort{
/*
*冒泡排序法
*/
public void sort(int [] arrary){
for(int i=1;i<arrary.length;i++){//比较相邻的元素,大的数往后面跑
for(int j=0;j<arrary.length-i;j++)//如果前面一个数比后面的一个数大,则两个元素调换位置。
{if(arrary[j]>arrary[j+1])
int temp=arrary[j];//把第一个元素放在一个临时变量上
arrary[j+1]=arrary[j];//把第二个元素放在第一个元素单元中
arrary[j]=temp;//把临时变量的元素保存到第二个元素中
}
}
}
showArrary(arrary);
}
public void showArrary(int[] arrary){
System.out.println("冒泡排序的结果:");
for(int t:arrary)
{
System.out.print(t+" ");
}
System.out.println();
}
public static void main(String[] args){
int[] arrary={63,4,24,1,3,15};
BubbleSort sorter=new Bubblesort();
sorter.sort(arrary);
}
}
b方法
public class maopaopaixufa {
public static void main(String[] args) {
int i,j;
int a[]= {1,3,5,33,23,53,22};
for(i=1;i<a.length;i++) {
for(j=1;j<a.length-i;j++)
{
if(a[j]>a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}for(int t:a)
{System.out.print(t+" ");}
}
}
c方法
import java.util.Arrays;//arrays.sort()方法:
//*arrays.sort(object) 其中的object为数组。此方法为默认的为升序排列
public class ss {
public static void main(String[] args) {
int a[]=new int[] {1,32,2,43,5,234,4};
Arrays.sort(a);
System.out.println("排序的结果为下:");
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
下期说一说选择排序方法。记得来按时学习哦。