选择排序
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