本文主要是介绍SDUTOJ 1582 排序 ----希尔排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
排序
Time Limit: 1000ms Memory limit: 32678K 有疑问?点这里^_^
题目描述
给你N(N<=100)个数,请你按照从小到大的顺序输出。
输入
输入数据第一行是一个正整数N,第二行有N个整数。
输出
输出一行,从小到大输出这N个数,中间用空格隔开。
示例输入
5
1 4 3 2 5
示例输出
1 2 3 4 5
提示
来源
示例程序
#include <stdio.h>int main()
{int n;int s[110];while(~scanf("%d",&n)){for(int i = 0; i < n; i++)scanf("%d",&s[i]);for(int k = n / 2; k >= 1; k = k / 2){for(int i = k + 1; i < n ; i++){for(int j = i - k; j >= 0; j--)if(s[j] > s[j + k]){int tmp = s[j];s[j] = s[j + k];s[j + k] = tmp;}}}for(int i = 0; i < n; i++){printf("%d",s[i]);if(i < n - 1)printf(" ");}printf("\n");}return 0;
}
这篇关于SDUTOJ 1582 排序 ----希尔排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!