四大排序方法(java版)

四大排序方法

前言

本文主要是【算法】——常用的排序方法的文章,如果有什么需要改进的地方还请大佬指出⛺️

作者简介:大家好,我是听风与他
☁️博客首页:CSDN主页听风与他
每日一句:狠狠沉淀,顶峰相见

目录

  • 四大排序方法
    • 前言
    • 冒泡排序
    • 选择排序
    • 直接排序
    • 直接插入排序
    • 文章末尾

冒泡排序

排序样例数组

int num[] = {5,1,3,2,8,7};
	public static void BubbleSort(int a[]) {
		int len = a.length;
		for(int i=0;i<len-1;i++) { //每一次冒泡出最大的数
			for(int j=0;j<len-1-i;j++) {  //第二层for循环每次减少一次,随着排序
				if(a[j]>a[j+1]) {         //最大的数冒泡在最后面
					int temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
			}
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    int num[] = {3,5,38,15,26,27,44,4,19,2,48,50};
    BubbleSort(num);
    for(int i:num) {
    	System.out.print(i+" ");
    }
	}

运行结果:

1 3 2 5 7 8 
1 2 3 5 7 8 
1 2 3 5 7 8 
1 2 3 5 7 8 
1 2 3 5 7 8 

选择排序

	public static void selectSort(int a[]) {
		//每一次都跟最小的数进行交换,就会将序列变得有序
		int n = a.length;
		int min = 0;  //min记载最小的数的下标
		for(int i=0;i<n-1;i++) {
			min = i;
			for(int j=i+1;j<n;j++) {
				if(a[min]>a[j]) {
					min = j;
				}
			}
            //如果min是i自己,则自身和自身交换,不影响结果
			int temp = a[min];
			a[min] = a[i];
			a[i] = temp;
		    for(int t:a) {
		    	System.out.print(t+" ");
		    }
		    System.out.println();
		}
	}

运行结果:

1 5 3 2 8 7 
1 2 3 5 8 7 
1 2 3 5 8 7 
1 2 3 5 8 7 
1 2 3 5 7 8 

直接排序

	public static void DirectSort(int a[]) {
		int n = a.length;
		for(int i=0;i<n;i++) {
			for(int j=i;j<n;j++) {
				if(a[i]>a[j]) {
					int temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		    for(int t:a) {
		    	System.out.print(t+" ");
		    }
		    System.out.println();
		}
	}

运行结果:

1 5 3 2 8 7 
1 2 5 3 8 7 
1 2 3 5 8 7 
1 2 3 5 8 7 
1 2 3 5 7 8 
1 2 3 5 7 8 

直接插入排序

	public static void InsertSort(int a[]) {
		int i,j,temp;
		int n = a.length;
		for(i=1;i<n;i++) {
			temp = a[i];  //temp记录每一次a[i]的值
			if(a[i]<a[i-1]) {
				for(j=i-1;j>=0&&a[j]>temp;j--) {
					a[j+1] = a[j];  //从前往后移动
				}
				a[j+1] = temp;  //移动之后,a[i]进入空位
			}
		    for(int t:a) {
		    	System.out.print(t+" ");
		    }
		    System.out.println();
		}
	}

运行结果:

1 5 3 2 8 7 
1 3 5 2 8 7 
1 2 3 5 8 7 
1 2 3 5 8 7 
1 2 3 5 7 8 

文章末尾

四大排序方法(java版)_第1张图片

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