Java排序算法之冒泡、选择和插入

冒泡算法:

public class Sort{
    
    
	// 省略了其他的方法
	public void bubbleSort(int[] arr){
    
    
		for(int i = 0 ; i< arr.length-1; i++){
    
    
			boolean flag = true;
			for(int j = 0 ; j < arr.length-1-i ;j++){
    
    
				// 将元素小的往上冒泡
				if(arr[j] > arr[j+1]){
    
    
					// 进行交换
					int temp = arr[j];
					arr[j]  = arr[j+1];
					arr[j+1] = temp;
					flag = false;
				}
			}
			// 如果flag == true 则表示该数组已经有序,没有进行交换,退出循环
			if(flag){
    
    
				break;
			}
		}
	}
}

选择算法:

public class Sort{
    
    
	// 省略了其他的方法
	public void selectSort(int[] arr){
    
    
		int minValue ; // 最小值
		int minIndex ; // 最小索引值
		// 第一层循环控制比较的次数
		forint i = 0; i < arr.length - 1; i++{
    
    
			minValue = arr[i];
			minIndex = i;
			// 第二层控制循环开始的索引位置
			for(int j = i+1;  j < arr.lengt; j++){
    
    
				if(arr[j]  <  minValue){
    
    
					minIndex = j;
					minValue = arr[j];
				}
			}
			if(minIndex != i){
    
    
				arr[minIndex] = arr[i];
				arr[i] = minValue;
			}
		}
	}
}

插入算法:

public class Sort{
    
    
	// 省略了其他的方法
	public void insertSort(int arr){
    
    
		int temp ;
		for(int i = 1;i < arr.length-1; i++){
    
    
			if(arr[i] < arr[i-1]){
    
    
				// 进入循环
				int index = i;
				while(index > 0 && arr[index] < arr[index-1]){
    
    
					// 进行交换
					temp = arr[index];
					arr[index] = arr[index-1];
					arr[index-1] = temp;
					index--;
				}
			}
		}
	}	
}

猜你喜欢

转载自blog.csdn.net/Hicodden/article/details/108269904