数据结构
Wust_Lilly
这个作者很懒,什么都没留下…
展开
-
C++快速排序之交换法
快速排序的基本思想:1,在一个无序的数组里随机找一个作为基准值。2,让数组里的每一个数字和基准值比较,比基准值大的放在基准值右边,比基准值小的放在基准值左边。3,递归调用这个函数,使得整个数组有序。代码:#include<iostream>using namespace std;void Swap(int *a,int *b){ int temp=*a;...原创 2019-03-13 23:11:42 · 425 阅读 · 0 评论 -
C语言堆排序
算法思想(以大顶堆为例):1.将长度为n的待排序的数组进行堆有序化构造成一个大顶堆2.将根节点与尾节点交换并输出此时的尾节点3.将剩余的n -1个节点重新进行堆有序化4.重复步骤2,步骤3直至构造成一个有序序列#include<stdio.h>void Swap(int* arr,int i,int j){ int temp=arr[i]; a...原创 2019-03-13 15:35:38 · 254 阅读 · 0 评论 -
C语言希尔排序
希尔排序(Shell Sort)又称“缩小增量排序”(Diminishing Increment Sort)是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。void ShellSort1(int* arr, int length){ int i, j, gap;//步长 for (...原创 2019-03-13 11:38:13 · 270 阅读 · 0 评论 -
C语言直接插入排序
直接插入排序(稳定算法)的基本思想:从第一个数开始,认定数组的前i个数有序,依次遍历数组,把后面的数据插入到合适的位置,使数组继续保持有序。#include <stdio.h>void Swap(int* a, int* b){ int temp = *a; *a = *b; *b = temp;}//直接插入排序 升序void InsertSort_Up(in...原创 2019-03-13 10:26:29 · 9576 阅读 · 1 评论 -
C语言简单选择排序
简单选择排序(Simple Selection Sort)(从小到大)的基本思想:首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序。#include<stdio.h>void SelectSort(int a[],int n){ //选择排序 int mix,temp; int i,j; fo...原创 2019-03-12 22:53:56 · 7788 阅读 · 0 评论 -
C语言冒泡排序
#include <stdio.h>void swap(int *i, int *j){ int temp = *i; *i = *j; *j = temp;}int main(){ int a[10] = {2,1,4,5,6,9,7,8,3,0}; int i,j; for(i=0;i<10-1;i++){ //n个数要进行n-1趟比...原创 2019-03-12 22:26:54 · 200 阅读 · 0 评论 -
C++归并排序
归并排序(Merge Sort)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略将问题分成一些小的问题然后递归求解,即分而治之。图解:递归代码:#include<iostream>using namespace std;void Merge(int arr[],int low,int mid,int hig...原创 2019-03-13 20:31:44 · 25007 阅读 · 6 评论