排序算法
实现常用的几种排序算法
HomeMany
这个作者很懒,什么都没留下…
展开
-
实现选择排序
/* * 此程序用于实现选择排序 * 作者:zhy * 时间:2021/7/20 */#include <stdio.h>#include <stdlib.h>// 用双重循环实现// 参数array为排序数组首地址,参数len为排序元素个数void selectsort1(int *array,int len);// 使用递归实现// 参数array为排序数组首地址,参数len为排序元素个数void selectsort2(int *array,in原创 2021-07-30 09:26:48 · 148 阅读 · 0 评论 -
实现基数排序(数组+链表)
/* * 此程序用于实现基数排序 * 作者:zhy * 时间:2021/7/24 */#include <stdio.h>#include <stdlib.h>#include <string.h>// 用于存放数据的节点typedef struct inode{ int data; struct inode *next;}inode,*pnode;int getcount(int obj);int getnum(int obj,in原创 2021-07-30 09:23:45 · 189 阅读 · 0 评论 -
实现快速排序
/* * 此程序用于实现快速排序 * 作者:zhy * 时间:2021/7/21 */#include <stdio.h>#include <stdlib.h>// 递归实现主函数// 参数:left 左标 right 右标// 参数:arr 排序数组首地址void quicksort(int *arr,int left,int right);int main(int argc,char *argv[]){ int arr[]={44,3,38,5,4原创 2021-07-30 09:22:16 · 104 阅读 · 0 评论 -
归并排序(递归实现)
/* * 此程序用于实现归并排序(递归实现) * 作者:zhy * 时间:2021/7/21 */#include <stdio.h>#include <stdlib.h>#include <string.h>// 归并排序用递归实现void mergesort(int *arr,int len);// 递归调用子函数void _mergesort(int *arr,int *arrtmp,int start,int end);int ma原创 2021-07-30 09:21:32 · 125 阅读 · 0 评论 -
实现归并排序
/* * 此程序用于实现归并排序 * 作者:zhy * 时间:2021/7/21 */#include <stdio.h>#include <stdlib.h>#include <string.h>int min(int a,int b);// 归并排序用循环实现void mergesort1(int *arr,int len);// 归并排序用递归实现void mergesort2(int *arr,int len);int main原创 2021-07-30 09:20:34 · 90 阅读 · 0 评论 -
实现插入排序
/* * 此程序用于实现插入排序 * 作者:zhy * 时间:2021/7/21 */#include <stdio.h>#include <stdlib.h>// 插入排序实现// 参数 array 排序数组的首地址// 参数 len 参与排序元素的个数void insertsort(int *array,int len);int main(int argc,char *argv[]){ int arr[]={44,3,38,5,47,15,36原创 2021-07-30 09:19:25 · 71 阅读 · 0 评论 -
实现希尔排序
/* * 此程序用于实现希尔排序 * 作者:zhy * 时间:2021/7/21 */#include <stdio.h>#include <stdlib.h>// 对同一组的元素进行插入排序// 参数 arr 需要排序的数组首地址// 参数 span 本次排序各元素位置的跨度// 参数 len 需要排序的数组长度void GroupInsertSort(int *arr,int span,int len);// 希尔排序函数// 参数 arr 需要原创 2021-07-30 09:18:33 · 111 阅读 · 0 评论 -
实现堆排序
/* * 此程序用于实现堆排序 * 作者:zhy * 时间: 2021/7/22 */#include <stdio.h>#include <stdlib.h>// 元素交换函数void swap(int &a,int &b);// 堆排序主函数// arr : 堆化数列首地址 // len :未排序的元素个数void heapsort(int *arr,int len);// 堆化函数(循环实现)// arr : 堆化数列首地址原创 2021-07-30 09:16:03 · 76 阅读 · 0 评论 -
冒泡排序实现
/* 此程序用于实现冒泡排序 * 作者:zhy * 时间:2021/7/20 */#include <stdio.h>#include <stdlib.h>// 使用双重循环实现// array是待排序数组的首地址,len参数是需要排序的元素个数void bubblesort1(int *array,int len);// 使用递归实现(单层递归)// array是待排序数组的首地址,len参数是需要排序的元素个数void bubblesort2(int原创 2021-07-30 09:05:48 · 93 阅读 · 0 评论