选择排序
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
原文地址:http://meyangyang.blog.51cto.com/12906086/1925475