Java——二维数组实例(三种排序法)

一、冒泡排序法(从后往前):

比较相邻的元素,如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

它的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,完成最终的排序。

Java——二维数组实例(三种排序法)_第1张图片

 以上的图片来源于网络,仅供参考,如果原作者对引用感到不满随时可以移除这段文字,谢谢!

冒泡排序法代码实现:

//一、冒泡排序法:
public class text8{
public static void main(String[] args){
	int[] nums= {56,89,12,45,88,99,745,7};//冒泡排序数列:
		for(int i=0;inums[j+1]){
					nums[j]=nums[j]+nums[j+1];
					nums[j+1]=nums[j]-nums[j+1];
					nums[j]=nums[j]-nums[j+1];
				}
			}
		}
		System.out.print("冒泡排序法即小到大排列是:");
		for (int n:nums){
			System.out.print(n+"\t");
		}
		System.out.println();
    }
}

排序结果如下:

冒泡排序法即小到大排列是:7    12    45    56    88    89    99    745 

二、选择排序算法

每一趟从待排序的数据元素中选出最小(或最大)的一个元素;

顺序放在已排好的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序法

选择排序法代码实现:

public class test{
public static void main(String[] args){
	    int[] number= {56,89,12,45,88,99,745,7};//选择排序数列:
//选择排序法;
		int minindex=0;//用于记录每次比较的最小值下标;
		for(int i=0;i

排序结果如下:

 选择排序法如下所示:745    99    89    56    88    12    45    7

三、直接插入排序法

(从后向前找到合适位置后插入):基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的子序列的合适位置(从后部向前找到合适位置后),直到全部插入排序完为止。

Java——二维数组实例(三种排序法)_第2张图片

以上的图片来源于网络,仅供参考,如果原作者对引用感到不满随时可以移除这段文字,谢谢!

直接插入排序法代码如下所示: 

public class test{
public static void main(String[] args){
        int[] numbers= {56,89,12,45,88,99,745,7};//插入排序数列:
//插入排序法;
		for(int i=1;i=0;j--){
				if(numbers[j]>temp){
					numbers[j+1]=numbers[j];
				}else{
					break;
				}
			}
			if(numbers[j+1]!=temp){
				numbers[j+1]=temp;
			}
		}
		System.out.print("插入排序法如下所示:");
		for(int b:numbers){
			System.out.print(b+"\t");
		}
	}
    }
}

排序结果如下:

插入排序法如下所示:7    12    45    56    88    89    99    745

四、求一组数中的最大值和最小值

public class test{
public static void main(String[] args){
	int[] num = {56,89,12,45,88,99,745,7};//求最大值和最小值数列;
//求最大值和最小值
	max(num);//调用方法,当输出语句在被调用的方法中时,可以直接写成max(num);
	//System.out.println(max);当在此写输出语句时,需要在前面写:int max = max(num);
	
	int min = min(num);
	System.out.println("最小值是:"+min);
//以下既是最大值最小值的方法:
	public static int max(int[] num){
		int len = num.length;
		int max = num[0];
		for(int i = 1;imax){
				num[i]= num[i]+max;
				max = num[i]-max;
				num[i]=num[i]-max;								
			}
		}
		System.out.println("最大值是:"+max);
		return max;
	}
	
	public static int min(int[] num){
		int len = num.length;
		int min = num[0];
		for(int i = 1;i

输出结果如下:

 最大值是:745
 最小值是:7

 支持:如果你觉得博主的文章的不错或者对你有帮助,可以点一个免费的关注支持一下博主,如果三连收藏支持就更好了吖,嘿嘿嘿,蟹蟹。 

你可能感兴趣的:(Java编程,java,排序算法,算法)