【C#冒泡法排序源码】教程文章相关的互联网学习教程文章

php实现四种基本排序算法

排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39); 用四种排序算法进行排序冒泡排序:(思路:对未排好序的数,从前往后两个数一次进行比较和调整,大的下沉,小的上升) $arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $len=count($arr); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if(...

算法三:插入排序【代码】

插入排序类似于扑克牌摸牌的过程(我的习惯),小的放在前面,如果抓到更小的就再往前面放但是第一张是不用排的。。。。数组: 3, 6, 2, 1, 9->2,3,6,1,9->1,2,3,6,9#include <iostream>using namespace std;int main() {int a[] = { 3, 6, 2, 1, 9 };int key, j;for (int i = 1; i < sizeof(a) / 4; i++){key = a[i];j = i - 1;while (j >= 0 && a[j] > key){a[j + 1] = a[j];j--;}a[j + 1] = key;}for (int i = 0; i < sizeof(a)...

经典算法:基数排序的小例子

1.概述基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献。原理:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次...

各种排序算法原理图【图】

Insertion:插入排序,每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 详细介绍见:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.htmlSelection:选择排序,直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小(或最大)数字出来,顺序放入新数组,直到全部拿完。详细介绍见:http://www.cnblogs.com/kkun/archive/2011/11/23/2260281.htmlBubble:泡排序,是一个两层...

最常用的排序——快速排序【代码】

快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到...

归并排序是一种有效的排序算法

gamefrye 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个...

排序算法总结

1.冒泡排序  相邻两个交换  时间复杂度O(n2)  稳定  2.插入排序  O(n2)  稳定  3.选择排序  O(n2)  不稳定  4.快排1)从待排序的n个记录中任意选取一个记录(通常选取第一个记录)为分区标准;2)把所有小于该排序列的记录移动到左边,把所有大于该排序码的记录移动到右边,中间放所选记录,称之为第一趟排序;3)然后对前后两个子序列分别重复上述过程,直到所有记录都排好序。稳定性:不稳定平均时间复杂度...

冒泡排序之改进算法直接上代码参考上篇冒泡排序易懂【代码】

参考上一篇冒泡排序后 然后稍微改了一下,速度提高的不多。 1//在传统冒泡中,每一轮外循环都会导致将该循环中最大的数沉底,会导致内循环从0到最后一个数之间2//每俩个数俩俩比较,如果在某一趟外循环中,内循环的Swap()函数没有执行过一次,那就代表此时从前3//到最后已经是有序的了,此时直接退出循环即可。 4 5 6 #include<iostream>7 #include<time.h>8 #include<stdlib.h>9 #include<sys/timeb.h> 10usingnamespace std; 111...

冒泡排序(算法源码)

算法源码://BubbleSort.cpp#include <iostream>using namespace std;void BubbleSort(int a[], int n){ for(int i=n-1;i>0;i--) {for(int j=0;j<i;j++) { if (a[j]>a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } }}int main(){ int a[]={4,3,6,9,7,5,1,10,2,15,8,7,6}; BubbleSort(a,sizeof(a)/sizeof(a[0])); cout<<"after bubble sort."<<endl; for (int i=0;i<sizeof(a)/sizeof(a[0]);...

五种排序算法【代码】

冒泡排序 const bubbleSort = (arr) => {for (let i = 0; i < arr.length; i++) {for (let j = i; j < arr.length; j++) {if (arr[j] < arr[i]) {let cur = arr[j]arr[j] = arr[i]arr[i] = cur}}}return arr }快速排序 const quickSort = (arr) => {if (arr.length < 2) return arrlet mid = Math.floor(arr.length / 2)let midVal = arr.splice(mid, 1)[0]let left = []let right = []for (let i = 0; i < arr.length; i++) {if (...

算法---排序算法---选择排序【代码】

1、实现思路:    从 待排序的数据中 选择最小(或最大)的 放在首位--->从除首位数据中 选择最小(或最大)放在 除首位的首位,以此类推,直至 未排序的为0;2、算法分析:    2.1、不稳定 排序;    2.2、比较趟数: 0至(n-1);比较次数: a=(n-1)+(n-2)+...2+1 => A:a=(n-1)+(n-2)+...2+1 B: a=1+2+...+(n-2)+(n-1) 【n-1个数】=> A+B => 2a=n+...n =>a=n(n-1)/2;赋值次数: int te...

排序算法 - 计数排序【代码】【图】

基本思想计数排序是一种线性排序算法,它利用了一个数组,因为数组下标的增长是线性的,所以它就把自己的元素转换成新开辟数组的下标。可是下标都是非负数啊?数组当中的值有正有负啊。做一个简单的转化就行了:找到数组中最小元素,用元素值减去,这样一来,所有元素对应的下标就求出来了。(实际上感觉像是个映射函数?)下图中保存的是待排序数组:[-1,-5,-6,-2,1,2,8,2,1,8] 然后跟哈希排序的思路一样:这里。直接开辟一个对应...

快速排序【代码】

问题:Input: s = 7, nums = [5,3,1,7,5,20,2,4,3,2,2,1,2,4,3] Output: [1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 7, 20] /* 例子: 3,8,7,1,2 2,8,7,1,3 2,3,7,1,8 2,1,7,3,8 2,1,3,7,81,2,3,7,8 */状态码朴素写法:import java.util.Arrays;publicclass test {publicstaticvoid main(String[] args) {int[] nums= {5,3,1,7,5,20,2,4,3,2,2,1,2,4,3};quicklySort(nums,0,nums.length-1);//Arrays.sort(nums); System.out....

代码练习(二维数组的定义,字符串加减,子元素的创建及绑定,排序算法)【代码】

<!DOCTYPE> <html><head><meta charset="utf-8"><title>IFE JavaScript Task 01</title></head> <body><ul id="source"><li>北京空气质量:<b>90</b></li><li>上海空气质量:<b>70</b></li><li>天津空气质量:<b>80</b></li><li>广州空气质量:<b>50</b></li><li>深圳空气质量:<b>40</b></li><li>福州空气质量:<b>32</b></li><li>成都空气质量:<b>90</b></li></ul><ul id="resort"><!-- <li>第一名:北京空气质量:<b>90</b></l...

hdu 1811(拓扑排序+并查集)【代码】

Rank of TetrisTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7961 Accepted Submission(s): 2266Problem Description自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为 了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排 名,这个...