java入门【数组算法】6
作者:互联网
排序算法
- 选择排序法
package com.ry.sort;
import java.util.Arrays;
/*
SelectionSort 选择排序,指定位置和其他位置比较,符合则换然后继续比较,直到最后一位
想法:a[0]>a[1]---->换,{7,9,4,5},a[0]=7
a[0]>a[2]---->换,{4,9,7,5},a[0]=4
a[0]>a[3]---->不换,{4, 9, 7, 5},a[0]=4,a[0]就固定了
*/
public class SelectionSort {
public static void main(String[] args) {
int[] a = new int[]{9, 7, 4, 5};
System.out.println("原来的:"+Arrays.toString(a));
SelectionSort s = new SelectionSort();
s.selectionSort(a);
System.out.println("排序后的:"+Arrays.toString(a));
}
/*
想法实现
*/
public void selectionSort ( int[] key){
for (int x = 0; x < key.length - 1; x++) {
for (int y = x+1; y < key.length; y++) {
if (key[x] > key[y]) {
int temp = key[x];
key[x] = key[y];
key[y] = temp;
}
}
}
}
/*
代码优化
*/
/*
变量交换,这也是一个算法
原理:a实,b实,t空
a给t,a空,
b给a,b空
t给b,t空
这样就交换了
*/
public void swap(int[] key,int x,int y){
int t;
t = key[x];
key[y] = key[y];
key[y] = t;
}
public void selectionSort2(int[] key){
for (int x = 0; x < key.length-1;x++){
for (int y = x+1; y < key.length; y++){
if (key[x] > key[y]){
swap(key,x,y);
}
}
}
}
}
上一节
java入门【数组】5
标签:java,入门,SelectionSort,int,void,++,算法,key,public 来源: https://blog.csdn.net/zcxhyh/article/details/116660607