计数排序法:计数数组适用于当前数组密集的情况.例如(2,3,5,4,2,3,3,2,5,4) 方法:先找出最大值最小值,之后统计每个数出现的次数,根据次数从小到大往数组里添加 计数排序法是一种不需要比较的排序方法 void count(int top,int length,int arr[]) { ],max=arr[],i=,j=; )); )return; while(i<length)//先找出最大和最小值 { if(min>arr[i]) { min=arr[i]; } if(max&…
#include <iostream.h> #define  MAX 100 void dispaly(int a[],int n) {     for(int i=0;i<n;i++)     {         cout<<"a["<<i<<"]="<<a[i]<<" ";     }     cout<<endl;      } // bubble s…
对单链表插入排序,给出个单链表的head节点:返回排完序的head节点: 首先数据结构中习惯了以数组为参数排序,瞬间想到是遍历单链表存入arraylist中,再进行insert sort,(O(n**2)),space(O(n)),leetcode过不去: 链表插入排序注意事项: 1:依次调用head.next的循环结束条件  listNode.next ==null; 2: 插入可能出现的情况a) 以排序的链表前面 b)中间,c)tail. 3:分类讨论, 4:以排完序的链表和未排完序链表之间…
插入排序将数据分为前面有序部分和后面无序部分,取无序部分的第一个元素插入到有序序列中. 注意与选择排序的区别. // insert sortvoid insertionSort(int arr[], int length) { int i, j, tmp; ; i < length; i++) { j = i; && arr[j ­ ] > arr[j]) { tmp = arr[j]; arr[j] = arr[j ­ ]; arr[j ­ ] = tmp; --j­­; }…
1.直接插入排序 直接插入排序的过程可以理解为一个固定长度的数组被分为两个集合,即已排序集合和未排序. 开始时已排序集合为空,而未排序集合即为整个数组.当排序开始后插入一个对象,已排序集合元素数目加1,相应地未排序集合元素数目减1,重复插入过程直至将未排序集合清空为止,这时排序集合就是最终结果.如下图: C++实现如下,为了使得程序可以对各种基本数据类型都能排序,使用了模板类,注意模板类的类声明和成员函数实现必须在同一个cpp文件里面,不能分开!! #ifndef INSERTSORT_H #d…
不多说,直接上干货! 插入排序包括直接插入排序.希尔排序. 1.直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用插入. 设定插入数和得到已经排好序列的最后一个数的位数.insertNum和j=i-1. 从最后一个数开始向前循环,如果插入数小于当前数,就将当前数向后移动一位. 将当前数放置到空着的位置,即j+1. 代码实现如下: package zhouls.bigdata.DataFeatureSelection;…
/*******************************快速排序 start**********************************///随即取 当前取第一个,首先找到第一个的位置,然后分成left和right两组子集 ,分别对left和right继续执行分割(同上操作) -(void)QuickSort:(NSMutableArray *)list StartIndex:(NSInteger)startIndex EndIndex:(NSInteger)endIndex{ …
直接插入排序:   折半插入排序:   shell插入排序:  …
插入排序在局部有序的情况下比冒泡排序快一倍,比选择排序快一点. 那什么是插入排序,就是将局部有序的数据向右移动,将未排序的数据插到他的前面 下面我们来解析代码: 这里外层循环out变量从1开始向右移动,他标记了未排序的最左端的数据.在内层的white循环中,in变量从out变量开始,向左移动,直到in变量不能再向左移动并且temp小于in所指的数据项的时候停止移动,while循环的每一趟都向右移动了一个已排序的数据项 static int[] array= {6, 3, 8, 2, 9, 1};…
假设有一组无序序列 R0, R1, ... , RN-1. (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列. (2) 然后,我们要依次把 R1, R2, ... , RN-1 插入到这个有序序列中.所以,我们需要一个外部循环,从下标 1 扫描到 N-1 . (3) 接下来描述插入过程.假设这是要将 Ri 插入到前面有序的序列中.由前面所述,我们可知,插入Ri时,前 i-1 个数肯定已经是有序了. 所以我们需要将Ri 和R0 ~ Ri-1 进行比较,确定要插入的合适位置…