Java四种排序(冒泡,选择,插入,希尔)

参考
https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

冒泡排序

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static void t2()
{
int[] nums = {5, 2, 4, 1, 3};
for (int i = 0; i < nums.length - 1; i++)
{
for (int j = 0; j < nums.length - i - 1; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}

System.out.println(Arrays.toString(nums));
}

选择排序

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static void t3()
{
int[] nums = {5, 2, 4, 1, 3};
for (int i = 0; i < nums.length - 1; i++)
{
int flag = i;
for (int j = i + 1; j < nums.length; j++)
{
if (nums[j] < nums[flag])
{
flag = j;
}
}
if (flag != i)
{
int temp = nums[i];
nums[i] = nums[flag];
nums[flag] = temp;
}
}

System.out.println(Arrays.toString(nums));
}

插入排序

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void t4()
{
int[] nums = {5, 2, 4, 1, 3};
for (int i = 1; i < nums.length; i++)
{
int temp = nums[i];
int flag = i;

while (flag > 0 && temp < nums[flag - 1])
{
nums[flag] = nums[flag - 1];
flag--;
}

if (flag != i)
{
nums[flag] = temp;
}
}

System.out.println(Arrays.toString(nums));
}

希尔排序

自己百度,我感觉挺麻烦的,网上说是插入排序的升级版.