经典排序算法总结材料(代码).docVIP

  • 1
  • 0
  • 约4.59千字
  • 约 14页
  • 2019-03-13 发布于安徽
  • 举报
实用标准 文档 经典排序算法总结(代码) --fly分享 目录 TOC \o 1-3 \h \z \u HYPERLINK \l _Toc302929111 /*冒泡法 PAGEREF _Toc302929111 \h 2 HYPERLINK \l _Toc302929112 /*快速排序 PAGEREF _Toc302929112 \h 3 HYPERLINK \l _Toc302929113 /*插入排序 PAGEREF _Toc302929113 \h 4 HYPERLINK \l _Toc302929114 /*希尔(shell)排序 PAGEREF _Toc302929114 \h 5 HYPERLINK \l _Toc302929115 /*选择排序 PAGEREF _Toc302929115 \h 6 HYPERLINK \l _Toc302929116 /*堆排序 PAGEREF _Toc302929116 \h 7 HYPERLINK \l _Toc302929117 /*归并排序 PAGEREF _Toc302929117 \h 9 附: 排序算法原理:/wiki/Category:%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95 flash演示: HYPERLINK /kecheng1/site01/suanfayanshi/list.asp?id=7 /kecheng1/site01/suanfayanshi/list.asp?id=7 #include iostream #include string using namespace std; /* 冒泡法 左右元素相比,往后冒泡 */ templatetypename T void BubbleSort(T* r, int n) { T temp; int i,j; for (i=0;in-1;i++) { for (j=0;jn-i-1;j++) { if (r[j] r[j+1]) { temp = r[j]; r[j] = r[j+1]; r[j+1] = temp; } } } } /*快速排序 左边比他小,右边比他大,每次得到一个最左边数据的位置*/ templatetypename T void QuickSort(T a[],int low,int high) { if(low high) { T elem = a[low]; int l = low, r = high; while(l r) { while(l r a[r] = elem) r--; if (l r) { a[l++] = a[r]; } while(l r a[l] = elem) l++; if (l r) { a[r--] = a[l]; } } a[r] = elem; QuickSort(a,low,r-1); QuickSort(a,r+1,high); } } /*插入排序 向右移,a[j+1]=a[j]*/ templatetypename T void insert_sort(T a[],int n) { int i,j; T elem; for (i= 1;in ;++i) { j = i- 1; elem = a[i]; while(j=0 elem a[j] ) { a[j+1] = a[j]; j--; } a[j+1] = elem; } } /*希尔(shell)排序 把插入排序的改成d即可*/ templatetypename T void shell_insert(T array[],int d,int len) { int i,j; T elem; for ( i = d;i len;i++) { j = i - d; elem = array[i]; while (j = 0 elem array[j]) { array[j+d] = array[j]; j = j - d; } array[j+d] = elem; } } templatet

文档评论(0)

1亿VIP精品文档

相关文档