排序
szjezoimzy
这个作者很懒,什么都没留下…
展开
-
NOJ 1036 数字排序
2016.10.28【题目描述】 1036.数字排序时限:1000ms 内存限制:10000K 总时限:3000ms描述 给你N个数字,请用冒泡法对这N个数字进行降序排序,并输出结果输入 第一行为N,N<=20 ; 第二行为N个数字,这N个数字用一个空格隔开 所有数均可用int型表示 输出 把这些数字用降序输出,每行输出一个,最后输出一个回车输入样例 8 23 12 36 98原创 2016-10-28 20:46:58 · 665 阅读 · 0 评论 -
NOJ 1543 冒泡排序
2016.10.10【题目描述】 冒泡排序时限:1000ms 内存限制:10000K 总时限:3000ms描述 写一个冒泡排序的程序。输入 先输入一个小于等于10000的正整数n,再输入n个整数, 输出 把输入数据按从小到大的顺序排序后输出,每个数字占一行。输入样例 5 2 6 9 4 123 输出样例 2 4 6 9 123【解题思路】 假设有n个元素,冒泡排原创 2016-10-21 22:28:07 · 619 阅读 · 0 评论 -
选择排序
2016.10.29【算法思想】 选择排序算法很简单,每次找到当前无序序列中最大的一项,安排到有序序列的最后。【算法分析】 时间复杂度O(n2),是不稳定排序【代码实现】# include <stdio.h>int n;int a[10005];void selection_sort(void);void swap(int ,int );int main(void){ int i;原创 2016-10-29 18:10:06 · 217 阅读 · 0 评论 -
二分插入排序
2016.10.30【算法思想】 核心是插入排序,找合适的位置的时候使用了二分算法【代码实现】# include <stdio.h>int n = 5;int a[10005];void binary_insertion_sort(void);int binary_search(int , int );int main(void){ int i; scanf("%d", &n)原创 2016-10-30 22:15:04 · 289 阅读 · 0 评论 -
希尔排序
希尔排序,又称缩小增量排序,是直接插入排序的一种改进版本。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高原创 2016-12-28 16:56:41 · 189 阅读 · 0 评论 -
插入排序
算法思想: 默认前面的序列有序,将当前元素插入到合适的位置#include <stdio.h>void insertion_sort(int [], int );void swap(int & ,int & );int main(void){ int i, n; int a[10005]; scanf("%d", &n); for (i = 1; i <= n原创 2016-12-29 22:01:48 · 259 阅读 · 0 评论