博主最近在恶补基础知识,算法必然是必不可少的,那么就从经典排序算法开始吧!(图源网络,侵删),没有列出全部,因为在期末考试囧 代码太多,就只显示了最关键的部分 1. 冒泡排序 实现思路: (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。 (2)这样对数组的第0个数据到N ...
分类:
编程语言 时间:
2020-01-14 13:13:53
阅读次数:
61
//冒泡排序//定义一个方法getnew,最后被调用,目的是对所有的列表都能排序function getnew(arr){//加黑部分是核心代码 var temp; //拿到已经排序的右边大的列表,多次排序交换4次,获得最大在右 for( var i=0;i<arr.length-1;i++){ / ...
分类:
编程语言 时间:
2020-01-13 12:46:53
阅读次数:
66
#include<iostream> using namespace std; int main() { int i,j; int arr[] = {6, 5, 3, 2, 4}; for (i = 0; i <5 ; i++) { //默认第一个是最小的。 int min = arr[i]; // ...
分类:
编程语言 时间:
2020-01-12 22:17:07
阅读次数:
82
#include<iostream> using namespace std; int main() { int n,temp,m; int a[n]; cin>>n; for(int m=0;m<n;m++) cin>>a[m]; for(int i=1;i<n;i++){ //i是控制排序趟数 ...
分类:
编程语言 时间:
2020-01-12 22:01:07
阅读次数:
92
题目描述 给定一个包含从0到n-1各一次的数组,若使用冒泡排序将其排为升序,问其中需要进行多少次交换 输入 测试数据有多组, 每组由两行组成:第一行包含正整数n(n <= 5000); 下一行包含从0到n-1的n个整数的序列。 输出 对于每组测试数据, 输出交换次数 样例输入 10 1 3 6 9 ...
分类:
编程语言 时间:
2020-01-12 17:58:02
阅读次数:
94
选择排序 选择排序算法是对冒泡排序算法进行优化后得到的一种排序算法,相比冒泡排序,选择排序减少了对序列进行排序的过程中,序列元素移动的次数。 原理 以对序列进行升序排序为例: 1) 从待排序序列中选择一个待排序区间,假设待排序序列长度为n,则待排序区间由[0,n-1]、[0,n-2]、[0,n-3] ...
分类:
编程语言 时间:
2020-01-12 13:35:39
阅读次数:
74
一、 选择排序 [3, 10, 2, 7, 16] 第1次:[3, 10, 2, 7, 16]找出2, 放入新数组中[2] 第2次:[3, 10, 7, 16]找出3, 追加到新数组中[2, 3] 第3次:[10, 7, 16]找出7,追加到新数组中[2, 3, 7] 第4次:[10, 16]找出1... ...
分类:
编程语言 时间:
2020-01-12 00:02:14
阅读次数:
82
选择排序注意点(假设第一层循环变量为:i;第二层循环变量为:j): [0,i-1]是已经排序好的元素。 定义一个变量,用来记录本次循环下找到的最小元素的下标。 第二层循环是从[i,length -1]中找到最小元素的下标,用来与i元素交换。 s = [3, 4, 1, 6, 2, 9, 7, 0, ...
分类:
编程语言 时间:
2020-01-11 20:48:47
阅读次数:
151
【总结】 归并排序 归并排序和冒泡排序,选择排序,桶排等一样属于排序方式 优点: 归并排序是一种稳定的排序方式 时间复杂度同快速排序一样为O(nlogn) 缺点: 需要O(n)的辅助空间 然后就是算法实现的具体流程辣 (图片来自百度百科 1.拆分 对于一个序列,我们每次将它分为两部分 对于每一部分再 ...
分类:
编程语言 时间:
2020-01-11 18:14:34
阅读次数:
80
运行结果: —————————————————————————————————————————— 运行结果: —————————————————————————————————————————— # 第三题:使用python实现冒泡排序def BubbleSort(list): long = len ...
分类:
编程语言 时间:
2020-01-11 09:33:45
阅读次数:
76