搞了这么久,终于把几种常用的排序算法搞清楚了时间复杂度为O(n ^ 2)的三个直接插入排序,选择排序,冒泡排序时间复杂度为O(N * logN)的排序算法快速排序,归并排序,希尔排序,堆排序归并排序空间复杂度为O(n)其他空间复杂度均为O(1)直接插入排序 1 import com.gxf.util...
分类:
编程语言 时间:
2015-07-15 12:51:14
阅读次数:
126
1.冒泡排序void sort(int list[], int n) { int i, j, temp; for (i = 0; i search) { right = middle - 1; } else if (list[middle] ==...
分类:
编程语言 时间:
2015-07-15 12:49:42
阅读次数:
131
#include
#define N 10//定义数组元素个数
int Ascending(int a,int b);//升序排列的函数声明
int Descending(int a,int b);//降序排列的函数声明
void swap(int*,int*);//交换数据的函数声明
void BubbleSort(int a[],int n,int (*compare)(int,int));...
分类:
编程语言 时间:
2015-07-15 11:16:06
阅读次数:
152
1.冒泡排序
从动画可看出冒泡排序十分慢,为o(n^2)
2.归并排序
归并排序(MergeSort)的基本思想是:将待排序文件看成为n个长度为1的有序子文件,把这些子文件两两归并,使得到「n/2」个长度为2的有序子文件;然后再把这「n/2」个有序文件的子文件两两归并,如此反复,直到最后得到一个长度为n的有序文件为止,这种排序方法成为二路归并排序。例如,有初始关键字序列:...
分类:
编程语言 时间:
2015-07-14 18:08:18
阅读次数:
111
1 冒泡排序:void BubbleeSort(int*p,int len,SORT_TYPE type = SORT_ASC) { //方式二冒泡:有发生任务数据交互时。说明已经排序好了 bool flag = true; int k = len; while (flag) { ...
分类:
编程语言 时间:
2015-07-14 13:19:43
阅读次数:
106
数据结构中常见的内部排序算法: 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序、基数排序、计数排序直接插入排序: 思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 性...
分类:
编程语言 时间:
2015-07-14 13:10:31
阅读次数:
211
1.冒泡排序 1 Array.prototype.specialSort = function(){ 2 //冒泡排序 3 var len = this.length, 4 a = 0; 5 for(var i = 0; i this[j+1...
分类:
编程语言 时间:
2015-07-14 00:03:05
阅读次数:
186
主要内容是摘自别人的,但是发现示例代码有错,故内容复制,代码修改。原理:临近的数字两两进行比较,按照从小到大(从大到小)进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位; 然后再从头开始进行两两比较交换,直到倒数第二位时结束(因为由第一遍排序得知已经把最大(小)数排到末尾了); ...
分类:
编程语言 时间:
2015-07-13 10:01:26
阅读次数:
120
下面实现用for循环实现冒泡排序(升序)arr=[5,9,34,3,24,12,23,2]
foriinrange(1,len(arr)):
forjinrange(0,len(arr)-i):
ifarr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
printarr以升序为例,冒泡排序的原理就是依次比较相邻的两个数,每次循环后把最大的数交换到最右..
分类:
编程语言 时间:
2015-07-13 00:57:39
阅读次数:
192
数组常用的排序法有:冒泡排序法、选择排序法、插入排序法、(快速排序法)。1、冒泡排序法(交换式排序法):其基本思想是通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后部移向前部,就像水底下的汽泡一样逐渐向上冒。举例说明:$arr[...
分类:
Web程序 时间:
2015-07-13 00:36:20
阅读次数:
161