- 博客(8)
- 收藏
- 关注
原创 C语言(window)通讯录程序
#include #include #include #define t 1#define f 0typedef struct message type2;typedef struct node type;struct message{int order;//编号char name[20];//姓名char number[20]
2017-09-02 20:12:19 203
原创 C语言(在linex系统操作)通讯录
C语言(Linux)通讯录一 、通讯录功能说明1、添加联系人2、删除联系人3、查找联系人4、排序(姓名、编号插入排序)5、查看所有联系人6、排序(堆排序、快速排序)7、更新联系人8、退出二、功能要求1、使用链表、结构体;2、排序使用插入排序;3、要有文件读入和读出;4、一个联系人要有三个号码三、设计思路因为要用到链表,和结构体所以采用
2017-09-02 20:07:19 329
原创 快速排序
快速排序是选择目前比较流行的一种排序方法(从小到大)对一些大数据快排有着卓越的优点,它的思想也非常的巧妙是用递归的方法进行排序。原理:快速排序以第一个数n作为键值(轴值),将比它小的放在它前面,比它大的放在后面;现在以n为数轴分为2部分左和右,分别再以左右为单独一组,分别以第一个为键值(轴)进行上面的操作,不难发现,既然是重复操作,不就是递归吗?程序:void print(
2017-09-02 19:16:42 126
原创 堆排序
堆排序是用到树(完全二叉树)的模型通过父节点和子节点的关系(从大到小)已知父节点:n则左子节点为2*n+1;右子节点为2*n+1+1;排序思路:完全二叉树有一个特点,编号是有序的是一层序遍历来完成排序现将每一个小二叉树中父节点都比子节点大最后输出方式:因为每一个小二叉树中父节点都比子节点大,那么最顶上的一定是最大的,所以我们不妨把最后一个数与最顶上交换,然后输出最后
2017-09-02 15:50:12 151
原创 希尔排序
希尔排序的基本是插入排序;插入排序的步长是1;然而希尔排序的步长是可变的,比如20个数据,以步长为10进行插排序,在以10-2进行排序依次类推,最后一个步长一定是1。那么问题来了,为什么要用不同步长来进行插入排序。因为当一组数据相对有序的化,用插入排序他们每个之间比的次数非常少,从而提高效率,减轻运算时间。倘若你想想,如果是1个G的数据处理,希尔排序绝对是个不错的选择程序:
2017-09-02 12:24:43 200
原创 插入排序
void charu(int a[])//插入排序{int temp;int i,j;for ( i = 1; i {temp = a[i];for (j = i - 1; j >=0 ; j--){if (a[j] > temp){a[j+1] = a[j];print(a);}else{break;}}a[j+1]
2017-09-02 11:58:40 151
原创 选择排序
二、选择排序:原理:对整个数组查找,再到最小的和第一个交换,然后除下第一个,在查找,找到第二小,和第二个位置交换int a[10] = {10,1,8,4,5,7,6,3,2,9};1 10 8 4 5 7 6 3 2 9 1 2 8 4 5 7 6 3 10 9 1 2 3 4 5 7 6 8 10 9 1 2 3
2017-09-02 11:19:40 127
原创 c语言排序
C语言排序简介C语言排序分为以下几类:1、冒泡排序2、选择排序3、插入排序4、希尔排序(最快)5、堆排序6、快速排序(常用)一、冒泡排序冒泡排序(从小到大),每一个值和下一个值比较,如果满足条件就交换。如一个数组10,9,8,7,6,5,4,3,2,1.9 8 7 6 5 4 3 2 1 10 8 7 6 5 4 3 2 1 9 10 7 6 5
2017-09-02 11:18:20 661 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人