摘要: 希尔排序详细图解来自:排序:希尔排序(算法) - 简书 (jianshu.com) 希尔排序与插入排序最大的差别:希尔排序的步长是gap,而插入排序的步长是1 #include<stdio.h> //希尔排序 void ShellSort(int *arr,int n) { for(int gap= 阅读全文
posted @ 2021-10-28 17:34 疯在其中不愿醒 阅读(43) 评论(0) 推荐(0)
摘要: #include<stdio.h> //插入排序//主要将无序数组分为有序(j)和无序(i)两部分 void InsertSort(int *arr,int n) { int temp=0; for(int i=1;i<n;i++) //默认第一个元素已经排序,向后扫描其他元素 { int j=i- 阅读全文
posted @ 2021-10-28 10:59 疯在其中不愿醒 阅读(22) 评论(0) 推荐(0)
摘要: 快速排序算法首先会在序列中选择一个基准值(pivot),将除基准值以外的数分为“比基准值大的数”和“比基准值小的数”。 步骤 a. 先从数列中取出一个数作为基准数。 b. 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 c. 再对左右区间重复第二步,直到各区间只有一个数。 阅读全文
posted @ 2021-10-22 15:36 疯在其中不愿醒 阅读(39) 评论(0) 推荐(0)
摘要: 选择排序就是重复“从待排序的数据中寻找最小值,将其与序列最左边的数字进行交换”,时间复杂度是O(n2)。 for(int i=0;i<N-1;i++) { for(int j=i+1;j<N;j++) { if(A[i]>A[j]) //如果前一个数比后一个数大,进行交换 { int temp=A[ 阅读全文
posted @ 2021-10-21 19:26 疯在其中不愿醒 阅读(29) 评论(0) 推荐(0)
摘要: 6-10 阶乘计算升级版 (20 分) 本题要求实现一个打印非负整数阶乘的函数。 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid i 阅读全文
posted @ 2021-10-20 22:02 疯在其中不愿醒 阅读(149) 评论(0) 推荐(0)
摘要: 6-9 统计个位数字 (15 分) 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。 函数接口定义: int Count_Digit ( const int N, const int D ); 其中N和D都是用户传入的参数。N的值不超过 阅读全文
posted @ 2021-10-20 17:21 疯在其中不愿醒 阅读(44) 评论(0) 推荐(0)
摘要: 6-8 简单阶乘计算 (10 分) 本题要求实现一个计算非负整数阶乘的简单函数。 函数接口定义: int Factorial( const int N ); 其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。 裁判测试程序样例: #include <st 阅读全文
posted @ 2021-10-20 16:49 疯在其中不愿醒 阅读(45) 评论(0) 推荐(0)
摘要: 6-7 统计某类完全平方数 (20 分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。 函数接口定义: int IsTheNumber ( const int N ); 其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否 阅读全文
posted @ 2021-10-20 16:40 疯在其中不愿醒 阅读(30) 评论(0) 推荐(0)