数组排序

Posted homle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组排序相关的知识,希望对你有一定的参考价值。

1. 选择法排序

  把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 ,比较完后,第一位就是最小的,然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来 ,比较完后,第二位就是第二小的.

  技术图片

public class SelectSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = new int[]{18,62,68,82,65,9};
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		System.out.println();
		for(int j=0; j<a.length-1;j++){
			for(int i=j+1;i<a.length;i++){
				if(a[i]<a[j]){
					int temp = a[j];
					a[j] = a[i];
					a[i] = temp;
				}
			}
		}
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		System.out.println();
	}

}

  技术图片

2. 冒泡法排序

  第一步:从第一位开始,把相邻两位进行比较 ,如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的,第二步: 再来一次,只不过不用比较最后一位。

  技术图片

public class BubbleSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = new int[]{18,62,68,82,65,9};
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		System.out.println();
		for(int j=0;j<a.length;j++){
			for(int i=0;i<a.length-j-1;i++){
				if(a[i]>a[i+1]){
					int temp=a[i];
					a[i] = a[i+1];
					a[i+1] = temp;
				}
			}
		}
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		System.out.println();
	}

}

  技术图片

 

以上是关于数组排序的主要内容,如果未能解决你的问题,请参考以下文章

以下代码片段的时间复杂度是多少?

快速排序-递归实现

对数组中的字符串进行排序,使其稀疏

算法排序之堆排序

在第6731次释放指针后双重免费或损坏

VSCode自定义代码片段—— 数组的响应式方法