龙空技术网

高级Java面试之简单排序算法

IT趣闻史 141

前言:

眼前你们对“java面试题排序算法”可能比较重视,你们都想要分析一些“java面试题排序算法”的相关资讯。那么小编同时在网上网罗了一些关于“java面试题排序算法””的相关内容,希望姐妹们能喜欢,你们快快来了解一下吧!

在面试高级Java时,算法问题避免不了,简单排序算法就经常会被问到,而且有些公司还需要手写相关代码,比如顺丰科技,尚德机构等知名企业。

下面就来回顾一下简单排序算法:

一、冒泡排序法:

冒泡排序原理图

public static void BubbleSort(int[] arr) {	int temp;//定义一个临时变量	for(int i=0;i<arr.length-1;i++){//冒泡趟数		for(int j=0;j<arr.length-i-1;j++){			if(arr[j+1]<arr[j]){				temp = arr[j];				arr[j] = arr[j+1];				arr[j+1] = temp;			}		}	}}

二、选择排序

简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]~arr[n]中选出最小的数据,将它与r[2]交换;以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。

选择排序原理图

public static void sort(long[] arr) {	int k = 0;	long tmp = 0;	for(int i = 0; i < arr.length - 1; i++) {		k = i;		for(int j = i; j < arr.length; j++) {			 if(arr[j] < arr[k]) {					k = j;			 }		}		tmp = arr[i];		arr[i] = arr[k];		arr[k] = tmp;	}}

三、插入排序法

插入排序的思想,每次遍历的任务是:通过扫描前面已排序的子列表,将位置i处的元素定位到从0到i的子列表之内的正确的位置上。

插入排序原理图

public static void sort(long[] arr) {	long tmp = 0;	for(int i = 1; i < arr.length; i++) {		tmp = arr[i];		int j = i;		while(j > 0 && arr[j] >= tmp) {			 arr[j] = arr[j - 1];			 j--;		}		arr[j] = tmp;	}}

标签: #java面试题排序算法