C语言十大排序 1、冒泡排序 基本思想: 冒泡排序基本思想是依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 在进行第一轮上面的
if(start<i) qusort(a,start,j-1);//对第一组进行排序 if(i<end) qusort(a,j+1,end);//对第三组进行排序 } 效果图: 5.选择排序 选择排序的基本算法是从待排序的区间中经过选择和交换后选出最小的数值存放到a[0]中,再将剩余的未排序区间中经过选择和交换后选出最小的数值存放到a[1]中,依次类...
1、#include#include/冒泡排序void bubleSort(int data, int n);/快速排序void quickSort(int data, int low, int high);int findPos(int data, int low, int high);/插入排序void bInsertSort(int data, int n);/希尔排序void shellSort(int data, int n);/选择排序void selectSort(int data, int...
void ShellSort(int arr[], int len) { int step; int i, j; int tmp; for(step = len/2; step > 0; step = step/2) // 比直接插入排序多了一层循环 { for(i = step; i < len; i++) // 直接插入排序可以看成step为1的希尔排序。把这里的Step都替换成1,就是直接插入排序 { j = i...
二、希尔排序 image.png 问题:如和控制红、蓝、褐三组依次插入排序? 方法1代码: voidShellSort(int*a,intn){intgap=3;for(inti=0;i<gap;i++){for(inti=0;i<n-gap;i+=gap){// [0,end]有序,把end+1位置的值插入,保持有序intend=i;inttmp=a[end+gap];while(end>=0){if(tmp1){gap=gap...
4、快速排序 算法思想: 选取第一个数为基准 将比基准小的数交换到前面,比基准大的数交换到后面 对左右区间重复第二步,直到各区间只有一个数 快速排序动图演示: 代码: 5、堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点...
二、十大经典排序算法的由来 冒泡排序(Bubble Sort)冒泡排序最早由美国计算机科学家、《计算机程序设计艺术》的作者之一唐纳德·克努斯(Donald Knuth)在他的著作《The Art of Computer Programming》中提出。选择排序(Selection Sort)选择排序最早由美国计算机科学家、图灵奖得主之一约翰·霍普克罗夫特(John Hopcroft)...
一、冒泡排序 1.原理 从数组的头开始不断比较相邻两个数的大小,不断将较大的数右移,一个循环后,最大数移至最后一位,无序数组规模减一。不断重复前面动作,知道数组完全有序。 2.实现 void swap(int* a, int* b) { int temp = *a; *a = *b; ...
1、一 插入排序1.1 直接插入排序基本思想:每次将一个待排序额记录按其关键码的大小插入到一个已经排好序的有序序列中,直到全部记录排好序。图解:代码实现:cppview plaincopy1. /直接顺序排序2. voidInsertSort(intr,intn)3. 4. for(inti=2;in;i+)5. 6. r0=ri;/设置哨兵7. for(intj=i-1;r0rj;j-...