【Java之数据结构与算法】

选择排序

package Code01;

public class Code01_SelectionSort {

	public static void selectionSort(int[] arr) {
		if(arr==null||arr.length<2) {
			return;
		}
		for(int i=0;i arr[j] ? j : minIndex;
			}
			swap(arr,i,minIndex);
		}
	}
	
	public static void swap(int[] arr,int i,int j) {
		int tmp=arr[j];
		arr[j]=arr[i];
		arr[i]=tmp;
	}
	
	public static void printArray(int[] arr) {
		for (int i=0;i

冒泡排序

public static void bubbleSort(int[] arr) {
		if(arr==null||arr.length<2) {
			return;
		}
		
		for(int end=arr.length-1;end>=0;end--) {
			for(int second=1;second<=end;second++) {
				if(arr[second-1]>arr[second]) {
					swap(arr,second-1,second);
				}
			}
		}
	}

插入排序

public static void insertSort1(int[] arr) {
		if(arr==null||arr.length<2) {
			return;
		}
		
		for(int end=1;end=0 && arr[newNumIndex-1]>arr[newNumIndex]) {
				swap(arr,end-1,end);
				newNumIndex--;
			}		
		}
	}



	public static void insertSort2(int[] arr) {
		if(arr==null||arr.length<2) {
			return;
		}
		for(int end = 1 ; end < arr.length ; end++) {
			//pre 新数的前一个位置
			for(int pre = end-1 ; pre>=0 && arr[pre] > arr[pre+1] ; pre--) {
				swap(arr , pre , pre+1);
			}		
		}
	}

你可能感兴趣的:(leetcode刷题,java,算法,数据结构)