C/C++
路漫漫`
这个作者很懒,什么都没留下…
展开
-
数据结构-排序算法之堆排序(C语言实现)
#include<stdio.h> #include<malloc.h> #include<time.h> #define MAX 10 void swap(int a[],int pos1, int pos2) { int temp = a[pos1]; a[pos1] = a[pos2]; a[pos2] = temp; } void Heap_Adjust(int a[], int pos, int len) { int max原创 2020-06-27 21:00:04 · 399 阅读 · 0 评论 -
数据结构-排序算法之希尔排序(C语言实现)
#include<stdio.h> #include<time.h> /* 和插入排序类似 思想是先设一个跳数(通常为: step / 3 + 1),把一组数据分成多组,对多组分别进行插入排序 然后缩小跳数,再次重复上述步骤 直至跳数为1,也就是对所有数据进行一次插入排序(因为经过前面的操作,全体数据已变的基本有序),从而缩短时间 */ #define MAX 10 void Shell_sort(int a[], int length) { int step = le原创 2020-06-27 20:59:29 · 415 阅读 · 0 评论 -
数据结构-排序算法之归并排序(C语言实现)
#include<stdio.h> #include<malloc.h> #include<time.h> #define MAX 10 int* Creat_Array() { int* arr = (int *)malloc(sizeof(int) * MAX); srand((unsigned int)time(NULL)); for (int i = 0; i < MAX; i++) { arr[i] =原创 2020-06-27 20:58:46 · 346 阅读 · 0 评论 -
数据结构-排序算法之快速排序(C语言实现)
#include<stdio.h> #include<time.h> /* 这是一种不稳定的排序算法,即两个相同元素的相对位置发生了改变:6 2 2 3 */ #define MAX 10 void Quick_sort(int a[], int start, int end) { if (start >= end) { return; } int i = start; int j = end; int t原创 2020-06-27 20:50:58 · 310 阅读 · 0 评论 -
数据结构-排序算法之选择排序(C语言实现)
#include<stdio.h> #include<time.h> /* 和冒泡相似,只不过减少了交换次数 大致思想是:先选定一个位置,比如说0,然后依次向后遍历,如果发现某个位置的值比0小,那么先不交换,而是用 一个变量temp保存下来,接着向后走,这样一趟下来可以找到数组中最小元素的下标,将其与位置0元素交换,如此 第一轮循环后便可将最小的元素放到0号位置。 */ #define MAX 10 void swap(int *a, int *b) { int temp原创 2020-06-27 20:50:04 · 413 阅读 · 0 评论 -
数据结构-排序算法之插入排序(C语言实现)
#include<stdio.h> #include<time.h> /* 效率高的情况: 1. 数据基本有序 2. 元素个数小 */ #define MAX 10 void Insert_sort(int a[], int length) { for (int i = 1; i < length; i++) { int j; if (a[i] < a[i-1]) { int原创 2020-06-27 20:48:51 · 258 阅读 · 0 评论 -
数据结构-排序算法之冒泡排序(C语言实现)
冒泡排序(升、降及其改进) #include<stdio.h> #include<time.h> #define MAX 10 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } void Bubble_sort_descend(int arr[], int length) { for (int i = 0; i < length; i++) {原创 2020-06-19 10:38:23 · 452 阅读 · 0 评论