/* 排序算法 */ #include <stdio.h> //冒泡排序 void Bubble_sort(int *p_val, int size) { int j = 0; int i = 0; for (i = 0;i < size - 1;i++) { for (j = i;j < size ...
分类:
编程语言 时间:
2020-03-29 21:20:29
阅读次数:
90
排序 1.定义: 所谓排序,即是整理文件中的内容,使其按照关键字递增或递减的顺序进行排列。 输入:n个记录,n1,n2……,其对应1的关键字为k1,k2…… 输出:n(i1),n(i2)……,使得k(i1)<=k(i2)…… (形象点讲就是排排坐,调座位,高在前低在后;或者低在前高在后) 2.排序算 ...
分类:
编程语言 时间:
2020-03-29 21:05:35
阅读次数:
79
Java算法与数据结构学习 一.数组 1.使用自定义类封装数组 3.查找算法 线性查找 (从头查到尾) 见上面的查找方法 二分法查找 (数组必须是有序数组) 二.简单排序 1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 ...
分类:
编程语言 时间:
2020-03-29 18:00:41
阅读次数:
89
预备知识 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结 ...
分类:
编程语言 时间:
2020-03-28 20:03:13
阅读次数:
88
1.插入排序 先用一个temp保存当前待插入的元素,然后用一个while循环移动p,循环条件中要判断p =0,如果待插入的元素小于有序区的所有元素,p会移动的负数,让它0时再循环一次,出来的时候即可插入到对应的位置。 2.选择排序 3.堆排序 如果写实际下标那么就用i2+1[l]=》h=mid 1; ...
分类:
编程语言 时间:
2020-03-28 16:18:47
阅读次数:
70
归并排序(Merge Sort) 和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典 ...
分类:
编程语言 时间:
2020-03-26 16:28:37
阅读次数:
93
冒泡排序: 定义: 依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。 至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始 ...
分类:
编程语言 时间:
2020-03-25 16:24:02
阅读次数:
88
1 public static void selectSort(int[] arr){ 2 3 //最开始除第一个元素外为未排序区间 4 for (int i = 0; i < arr.length-1; i++) { 5 int min = i; 6 //遍历未排序区间,注意j的初始值,j比i大1 ...
分类:
编程语言 时间:
2020-03-24 10:50:31
阅读次数:
63
选择排序:遍历数组,依次找出将最小值放入放到遍历开始位置 function selectSort(arr) { const Len = arr.length; const fLen = Len - 1; let minIndex, temp; for (let i = 0; i < fLen; i+ ...
分类:
编程语言 时间:
2020-03-22 13:39:10
阅读次数:
70