考研
考研学习
如果大雪封门
地质大学搞计算机
展开
-
C语言实现归并排序
/* 归并排序 时间复杂度:O(nlog2n) 空间复杂度:O(n) 稳定性:稳定 */ void MergeSort(int a[],int low,int high,int n){ //参数[low,high]为排序范围,包含端点的值,n为待排序数组的长度 if(low<high){ int mid = (low+high)/2; MergeSort(a,low,mid,n); //对左路归并排序 MergeSort(a,mid+1,h原创 2021-09-29 17:05:26 · 77 阅读 · 0 评论 -
两种常见的选择排序
一.简单选择排序 /* 简单选择排序 空间复杂度:O(1) 时间复杂度:O(n^2) 稳定性:不稳定 */ void SelectSort(int a[],int n){ int i,j; for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(a[j]<a[i]){ int temp = a[j]; a[j] = a[i];原创 2021-09-29 15:54:40 · 106 阅读 · 0 评论 -
常见的两种交换排序
一.冒泡排序 /* 冒泡排序 --- 正向冒泡(大的值向后冒泡) 空间复杂度:O(1) 时间复杂度:最优时间复杂度O(n),最坏时间复杂度O(n^2) 稳定性:稳定 */ void BubbleSort(int a[],int n){ int i,j; for(i=1;i<n;i++){ int flag = 0; for(j=1;j<n-i+1;j++){ //关于j的条件可以优化 if(a[j]<a[j-1]){原创 2021-09-28 19:26:47 · 126 阅读 · 0 评论 -
常见的四种插入排序
一.直接插入排序(不带哨兵) /* 直接插入排序(不带哨兵) --- 从小到大 空间复杂度:O(1) 时间复杂度:最好的时间复杂度为O(n),最坏为O(n^2) 稳定性:稳定 */ void InsertSort(int data[],int n){ int i,j,temp; for(i=1;i<n;i++){ if(data[i]<data[i-1]){ temp = data[i]; //保存data[i]的副本原创 2021-09-28 16:50:11 · 1029 阅读 · 0 评论