一、排序的概念:将一系列数据按照某个关键字进行递增或递减的顺序排列起来 二、排序的方式: 1、插入排序: 直接插入排序: 一 一比对 折半插入排序:在已经拍好的序列中插入,适合初始记录无序、n较大的情况 希尔排序:待排序的关键字基本有序->效率较高 分组插入,先分割(相隔某个增量的记录),对每组进行 ...
分类:
其他好文 时间:
2020-07-12 22:30:17
阅读次数:
65
/* 直接选择排序 */ func straightSelectionSorter(array []int) { for i := 0; i < len(array)-1; i++ { k := i for j := i + 1; j < len(array); j++ { if array[k] ...
分类:
编程语言 时间:
2020-06-16 23:05:15
阅读次数:
62
@[toc] 插入排序 二分插入排序 选择排序 选择排序 冒泡排序 快速排序 堆排序 归并排序 桶排序 计数排序 ...
分类:
编程语言 时间:
2020-03-18 09:53:29
阅读次数:
66
基本排序算法 直接插入排序 方法:从当前记录开始,逐个与前面的记录比较,若当前记录小,则把前面的记录后移一位,否则插入当前记录 运行时间与待排序的记录的顺序有关 时间复杂度O(n2) 稳定性:稳定 代码 直接选择排序 做法:一次从未排序的序列中选择最小的值,与当前元素进行交换 时间复杂度: 稳定性: ...
分类:
编程语言 时间:
2020-03-08 19:33:48
阅读次数:
68
个人觉得 直接选择是最简单的一种排序了 步骤 从待排序序列中,找到最小的元素; 如果最小元素不是待排序序列的第一个元素,将其和最后一个元素互换; 从余下的 N - 1 个元素中,找出关键字最小或最大的元素,重复(1)、(2)步,直到排序结束。 第一个数和第二个,第三个..最后一个数比较, 每次比较选 ...
分类:
编程语言 时间:
2020-02-20 09:31:35
阅读次数:
63
源程序: 用三种排序:冒泡排序,直接插入排序,直接选择排序 #include <iostream>#define N 5using namespace std; template <typename T>//冒泡排序 /*void bubble_sort(T a[], int n){ int i, ...
分类:
其他好文 时间:
2020-02-06 11:01:08
阅读次数:
77
直接选择排序 数组分成有序区和无序区,初始时整个数组都是无序区,然后每次从无序区选一个最小的元素直接放到有序区的最后,直到整个数组变有序区。 选择排序的步骤是这样的: 首先,找到数组中最小的元素,将它和数组的第一个元素交换位置。 第二步,在剩下的元素中继续寻找最小的元素,和数组的第二个元素交换位置。 ...
分类:
编程语言 时间:
2019-12-29 23:32:06
阅读次数:
114
数据的排序是在解决实际问题时经常用到的步骤,也是数据结构的考点之一,下面介绍10种经典的排序方法。 首先,排序方法可以大体分为插入排序、选择排序、交换排序、归并排序和桶排序四大类,其中,插入排序又分为直接插入排序、二分插入排序和希尔排序,选择排序分为直接选择排序和堆排序,交换排序分为冒泡排序和快速排 ...
分类:
编程语言 时间:
2019-11-23 21:55:58
阅读次数:
69
排序 内部排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序 交换排序 冒泡排序 快速排序 直接插入排序 给定一组序列,假定第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依此将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插入到有序 ...
分类:
编程语言 时间:
2019-11-02 00:22:49
阅读次数:
86
Contents 定义排序前后两个相等的数相对位置不变,则稳定稳定性的好处从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用各排序算法的稳定性堆排序、快速排序、希尔排序、直接选择排序不是稳定的排序算法基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算... ...
分类:
编程语言 时间:
2019-10-21 11:29:26
阅读次数:
87