插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
编程语言 时间:
2015-01-18 18:24:42
阅读次数:
232
关于排序算法的性能和稳定性总结,维基百科中文词条排序算法的总结很全面。本文统一将数组从小到大排序。1.插入排序(1)直接插入排序,基本操作是将一个记录插入到已经排好序的的有序表中,从而得到一个新的,记录数曾1的有序表。void InsertSort(int a [], int size){ int....
分类:
编程语言 时间:
2015-01-14 19:38:01
阅读次数:
173
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
编程语言 时间:
2015-01-07 14:47:26
阅读次数:
160
排序算法注意点:
插入类排序:1:直接插入排序O(n^2)
2:折半插入排序O(n^2)
3:希尔排序 O(n乘以log以2为底,n的对数)
空间复杂度都是O(1)
交换类排序:1:冒泡排序O(n^2),空间复杂度O(1)
2:快速排序O(n乘以log以2为底,...
分类:
编程语言 时间:
2015-01-06 18:03:00
阅读次数:
165
1.冒泡排序
基本思想是:两两比较相邻记录的关键字,如果反序则交换
冒泡排序时间复杂度最好的情况为O(n),最坏的情况是O(n^2)
改进思路1:设置标志位,明显如果有一趟没有发生交换(flag = false),说明排序已经完成
改进思路2:记录一轮下来标记的最后位置,下次从头部遍历到这个位置就Ok.
原冒泡排序代码如下:
void swap(int l...
分类:
编程语言 时间:
2015-01-04 19:16:51
阅读次数:
266
//bubble sort?123456789101112131415161718192021222324252627282930function bubbleSort(arr,comp){for(var i = 0;i b;});console.log(input);input = new Ar....
分类:
编程语言 时间:
2014-12-18 16:44:58
阅读次数:
268
/// /// 冒泡排序法1 /// /// public static void BubbleSort(int[] list) { for (int i = 0; i ...
分类:
编程语言 时间:
2014-12-09 00:24:17
阅读次数:
260
#include
#include
#include
int a[]={223, 34, 23, 2, 21, 55, 87, 533 , 213, 111};
//int a[]={2, 21, 23, 34, 55, 87, 111, 213, 223, 533};
//int a[]={533, 223, 213, 111, 87, 55, 23, 34 , 2...
分类:
编程语言 时间:
2014-12-03 15:48:07
阅读次数:
145
1 冒泡排序:
void BubbleSort(int*p,int len){
//冒泡方式二:当某一次遍历没有发生任务数据交互时,说明已经排序好了
bool flag = true;
int k = len; while (flag)
{
flag = false;
for(int j=0 ; j<k-1 ; j++)
{
if...
分类:
编程语言 时间:
2014-11-19 01:41:36
阅读次数:
167