数据结构与算法分析
重温数据结构与算法分析
吹白
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
选择排序算法思想及示例(C语言实现)
选择排序算法思想:找到数组中从下标0开始的最小的元素,把它和第一个元素进行交换找到数组中从下标1开始的最小的元素,把它和第二个元素进行交换依次类推示例代码:#include <stdio.h>void swap(int* i, int* j) { int temp = *i; *i = *j; *j = temp;}void sort(int* N,int n) { for (int i = 0; i < n; i++) {原创 2021-06-22 10:52:07 · 318 阅读 · 0 评论 -
直接插入排序算法思想及示例(C语言实现)
一、算法思想直接插入排序的主要思想是:把数列分成两部分,前面部分为有序区,后面部分为无序区,初始时有序区只有第一个元素,一个数字组成的数列当然是有序的遍历无序区,把其中每个数不断地插入有序区,形成一个更大的有序区,遍历完成时整个数列也就有序了算法步骤:假设数组N是待排序的数组,初始时认为N[0]是有序的,那么遍历N[1]到N[n-1]遍历到N[i]的时候,前面的数列已经是有序的了,那么把N[i]与N[i-1]…一直往前比较,用j来记录与其比较的元素下标,每次比较j自减,循环结束的时候可能出原创 2021-06-20 00:17:25 · 4146 阅读 · 4 评论 -
快速排序算法思想及示例(C语言实现)
一、主要思想快速排序的主要思想是分治法,也就是把问题分解成若干个小问题求解,然后把小问题的解合成问题的解。快速排序的算法步骤如下;①从数列中取出一个数作为基准数;②把所有小于基准数的全部挪到左边,把所有大于基准数的全部挪到右边;③对基准数左右两部分分别重复步骤①和②。一次基本步骤的演示过程:原始数列:①取第一个数作为基准数,用临时变量x记录下来,x=56②用i,j分别从数列头和尾遍历数列,初始化时i=start(开始位置),j=end(结束位置)(如果start >= end 直接原创 2021-06-19 22:47:09 · 4370 阅读 · 0 评论 -
冒泡排序算法及其改进(C语言实现)
一、经典冒泡算法假设有n个数需要排列成非递减数列。冒泡算法的主要思想是①比较第一个与第二个数,如果第二个数小于第一个数则交换,否则不交换;然后以同样的规则比较第二第三个数,以此类推,比如这样就完成了一趟排序,通过不断地交换,第一趟排序进行了n-1次比较就把最大的数交换到了最后。②遵循①中的规则进行下一趟排序,由于最后一位已经确定是最大值,则第二次只需要n-2次比较既可以把第二大的数交换到倒数第二个位置。③以此类推,第i趟排序需要经过n-i次比较其算法具体实现如下:#include <s原创 2021-06-19 22:01:48 · 6535 阅读 · 6 评论
分享