![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
猿来不容易
学生
展开
-
冒泡排序
冒泡排序(Bubble Sort),是一计算机科学领域较为简单的一种排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名冒泡排序。冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比...原创 2017-12-05 18:16:33 · 373 阅读 · 0 评论 -
选择排序
选择排序包括直接选择排序与堆排序,本文只介绍简单的直接选择排序,直接选择排序的时间复杂度为,并且选择排序的算法是不稳定的。 原理:选择排序的是在第i个元素后的数组中找到最小值,然后将该最小值与第i个元素互换位置。 基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]...原创 2018-09-06 10:35:54 · 208 阅读 · 0 评论 -
插入排序
原理:插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相 等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺...原创 2018-09-06 11:28:40 · 231 阅读 · 0 评论 -
不使用运算符来求两个数字的和
public class Solution { public int Add(int num1,int num2) { while (num2!=0) { int temp = num1^num2; num2 = (num1&num2)<<1; num1 = temp; ...原创 2018-09-10 08:29:37 · 474 阅读 · 0 评论 -
快速计算一个整数二进制中含1的个数
public class Solution { public int NumberOf1(int n) { int count = 0; while(n!= 0){ count++; n = n & (n - 1); } return count; }}...原创 2018-09-10 15:45:51 · 1201 阅读 · 2 评论 -
快速排序
有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的...转载 2018-09-07 10:21:15 · 172 阅读 · 0 评论