首页 > 代码库 > 选择排序和冒泡排序定义

选择排序和冒泡排序定义

选择排序

class TestTeacher{
	public static void 	selectSort(int[] arr){
		for(int y=0;y<arr.length;y++){
			for(int x=0;x<arr.length-1;x++){
				if(arr[x]<arr[y]){
					int temp = arr[x];
					arr[x] = arr [y];
					arr[y] = temp;
				}
			}
		}
		
	}
public static void main(String[] args){
	int[] arr = {1,2,4,7,2,7,3,7};
	printArray(arr);
	selectSort(arr);
	printArray(arr);
}
public static void printArray(int[] arr){
	System.out.print("[");
	for(int x = 0;x <arr.length;x++){
		if(x!=arr.length-1){
			System.out.print(arr[x]+",");
		}else {
			System.out.print(arr[x]+"]");
		}
	}
	
	}
}

泡排序:相邻的两个元素进行比较,如果符合条件换位

class TestTeacher{
	public static void 	selectSort(int[] arr){
		for(int y=0;y<arr.length-1;y++){
			for(int x=0;x<arr.length-y-1;x++){   //-y:让每一次比较减少, -1:避免角标越界
				if(arr[x]>arr[x+1]){
					int temp = arr[x];
					arr[x]= arr[x+1];
					arr[x+1]=temp;
				}
			}
		}
		
	}
public static void main(String[] args){
	int[] arr = {1,2,4,7,2,7,3,7};
	printArray(arr);
	selectSort(arr);
	printArray(arr);
}
public static void printArray(int[] arr){
	System.out.print("[");
	for(int x = 0;x <arr.length;x++){
		if(x!=arr.length-1){
			System.out.print(arr[x]+",");
		}else {
			System.out.print(arr[x]+"]");
		}
      	}	
    }
}

无论什么排序,都需要对满足条件的元素进行位置置换

所以可以把这部分相同的代码提取出来,单独封装成一个函数

public static void swap(int[] arr,int a ,int b){
	int temp = arr[a];
	arr[a] = arr[b];
	arr[b] = temp;
}

实际开发时,可以使用java提供的排序

import java.util.*;

Arrays.sort(arr);


本文出自 “逐梦路上的Man” 博客,请务必保留此出处http://meyangyang.blog.51cto.com/12906086/1925475

选择排序和冒泡排序定义