import java.util.*;
public class Dome_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Sort s = new Sort();
int[] array = new int[] {4,3,2,1};
s.maoPao(array);
s.xuanZe(array);
s.chaRu(array);
}
}
class Sort{
/**
* 冒泡排序
* 思路:每一轮找一个最大的排在相应的位置上
* @param array:待排序的数组
*/
public void maoPao(int[] array) {
int temp = 0;
for(int i = 0;i < array.length - 1;i ++){
for(int j = 0;j < array.length - 1 - i;j ++){
if(array[j] > array[j + 1]){
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(array));
}
/**
* 选择排序
* 依次寻找最值并交换位置:选择排序
* @param array:待排序数组
*/
public void xuanZe(int[] array){
for(int i = 0;i < array.length - 1;i ++) {
int x = i;
for(int j = i + 1;j < array.length;j ++) {
if(array[x] > array[j]){
x = j;//循环查找最值的下标
}
}
if(x != i)
{
int temp = array[x];
array[x] = array[i];
array[i] = temp;
}
}
System.out.println(Arrays.toString(array));
}
/**
* 插入排序
* 思路:可以把数组一分为二,第一个部分只有第一个元素,第二部分是其他元素,然后从第二个部分取出元素和第一个部分比较然后把元素插入到第一个部分的合适位置
* @param array
*/
public void chaRu(int[] array) {
for(int i = 1;i < array.length;i ++)
{
int temp = array[i];
int index = i - 1;
while(index >= 0 && temp < array[index])
{
array[index + 1] = array[index];
index --;
}
array[index + 1] = temp;
}
System.out.println(Arrays.toString(array));
}
}
java基本排序:冒泡+选择+插入
最新推荐文章于 2024-01-18 22:45:54 发布