18
作者:
xxdmd8
,
2024-12-20 19:04:26
,
所有人可见
,
阅读 6
DGH-DS-希尔排序
【问题描述】输入一整数序列,采用希尔排序对其进行升序排序,并输出排序后的结果
【输入形式】
【输出形式】
【样例输入】12 0 9
【样例输出】0 9 12
#include<stdio.h>
#include<iostream>
using namespace std;
void shellSort(int arr[],int len){
int i, j, temp, gap;
for(gap = len/2; gap > 0; gap /= 2){
for(i = gap;i < len;i ++){
temp = arr[i];
for(j = i - gap;j >= 0 && arr[j] > temp; j -= gap) arr[j + gap] = arr[j];
arr[j + gap] = temp;
}
}
}
int main(){
int len = 0, i, num;
int arr[100];
while(scanf("%d",&num) == 1 && len < 100){
arr[len ++] = num;
int c = getchar();
if(c == '\n' || c == EOF) break;
}
shellSort(arr, len);
for(int i = 0;i < len;i ++){
cout << arr[i] << " ";
}
return 0;
}