- public class Shell {
- private static void sort(int[] values) {
- // 增量从数组长度的一半开始,每次减小一倍
- for (int i = values.length / 2; i > 0; i /= 2)
- // 从i等于折半长度开始,依次递增
- for (int j = i; j < values.length; j++) {
- // 把i之前大于array[i]的数据向后移动
- for (int m = j - i; m >= 0; m -= i) {
- int temp = (values[m]);
- if (temp > (values[m + i])) {
- // 对比较后的数据进行交换位置
- values[m] = values[m + i];
- values[m + i] = temp;
- }
- }
- }
- for (int n = 0; n < values.length; n++) {
- System.out.print(values[n] + ",");
- }
- }
- public static void main(String[] args) {
- int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5 };
- sort(values);
- }
- }
shell排序(Java语言)
最新推荐文章于 2023-06-28 09:33:17 发布