一、冒泡排序
算法思想:假设是从小到大排序
1.用当前位置的数与毗邻的数相比 。
2.若当前位置的数大于毗邻的数,则交换数值位置。
3.然后再用交换位置的那个大值数继续重复上面(2)的思路,
4.再重复(3)的思路。如此轮转之,直至排序完成。
void bubble_sort(int *arr,int len)//排序对象|对象数据个数
{
int temp;
for(int i=0;i<len-1;i++)//轮转次数
{
for(int j=0;j<len-1-i;j++)//比较次数
{
if(arr[j]>arr[j+1]) //若当前位置的数大于毗邻的数,则交换数值位置。
{
temp = arr[j];
arr[i] = arr[j+1]; //即将较小值往左挪,用右边的较大值继续去与右边的数据比较
arr[j+1] = temp;
}
}
}
}
二、选择排序
算法思想: 假设是从小到大排序
1.首先在未排序序列中找到最小元素,存放到排序序列的起始位置,
2.然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3.如此轮转之,直至排序完成。
void select_sort(int *arr,int len)//排序对象|对象数据个数
{
int m,temp;
for(int i=0;i<len-1;i++)//轮转次数
{
for(int j=i+1;j<len;j++)//从排序后的较小值得下一位置开始寻找
{
if(arr[j]>arr[m])//若寻找的位置大于当前轮转前次记录的较小值
{
temp = a[j];
arr[j] = arr[m];//替换原来较小值的位置,以与之更小的值取代之
arr[m] = temp;
}
}
}
}
再看另一个没有单独写出函数然后调用的,似乎前者更好理解: ...
冒泡排序和选择排序的核心是正好相反的。他们第一个for循环,比较的都是趟数,第二个for循环比较的都是和本趟中的数据进行比较。...
这是在学校上C语言ppt课件上讲到的,过程清晰很容易理解 假设存在一个int[] a 一、 冒泡排序过程 1、比较第一个数与第二个数,若a[0]>a[1],则交换;然后比较第二个数与第三个数;一次类推,直至第n-1个数和第n个数比较为止------第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上。 2、对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置。 3、重...
冒泡排序 冒泡排序原理:对于一个数组,相邻的两个元素进行对比,如果前一个元素比后一个元素大,就交换两个元素的位置。重复以上步骤,直到没有元素可以对比 代码实现: 选择排序 原理:用一个索引位置上的元素依次与其他所以上的元素进行比较,较小的在前,大的在后。 代码实现:...
冒泡排序 在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 选择排序 选择排序和冒泡排序类似,跟冒泡不同之处在于,它不是每比较一次就调换位置, 而是一轮比较完毕,找到最大值(或者最小值)之后,将其放在正确的位置, 其他数的位置不变...
冒泡排序,选择排序 冒泡排序 基本思想: 从数组的头部开始,比较相邻两个数,如果第1个数比第2个数大,就交换他们两个。也就是让较大的数逐渐往后 移动,直到数组的末尾,经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。 第一轮结束后,继续第二轮,仍然从数组的头部开始比较,直到数组的倒数第2个元素为止,经过第2轮比较,就可以找到次大的元素,并将它放到倒数第二个位置。 一次类推,经过n-...
冒泡排序 #选择排序...
冒泡排序是当前的值和下一个值比较,如果当前值大于下一个值,就调换两者的位置。每次调用的时候都会确定一个最大值放在最后,就像是在一个一个的泡按照顺序往上冒。 所以内部的循环是 但是一共有a.length个泡泡要冒 所以上面的循环至少要执行a.length次,当然最后一次就只有一个泡泡了 所以还需要嵌套一层for循环,他的作用是控制n是哪一个泡 而选择排序就是一个元素和当前...
冒泡排序 测试例子:5 2 1 6 4 7 9 0 8 3 思路: 冒泡排序通过从开始位置的元素两两比较后面的元素,找到最大值,放到数组的最后面。每次找到最大值,就将数组大小减1 比较的两个数,如果前面的数比后面的数据大,就交换两个数,如果前面的数比较小,就不交换两个数。 (比较的思路容易和选择排序混淆) 时间复杂度: 平均:O(n^2) 每遍历一次数组,只能确定一个数的正确位置,因此n个元素,一...
Uint8Array 声明 比如说,我们想将其中的16,17,0,0拿出来组成一个新的uint8array,那有什么简单的办法,首先看官方api uint8array 有一个方法 subarray 方法 (Uint8Array) 为此数组获取 ArrayBuffer 存储的新 Uint8Array 视图。 看下面代码 这样大家以为这就是一个新的uint8array数组了,是自己想要的东西 但是看下...