几个重要的内部排序
2013-06-09 17:28
92 查看
void BubbleSort(int a[], int len) { int i, j; for (i = 0;i < len; i ++)//sort counts { for (j = len - 1;j >= i; j --) { if (a[j] < a[j-1]) { int tmp = a[j]; a[j] = a[j-1]; a[j-1] = tmp; } } } } /*---------------SelectSort------------------*/ int SelectMinKey(int a[] , int index, int len) { int i, k, min = 0; min = a[index]; k = index; for (i = index + 1; i < len; i ++) { if (a[i] < min) { min = a[i]; k = i; } } return k; } void SelectSort(int a[], int len) { int i, j; for (i = 0; i < len; i ++) { j = SelectMinKey(a, i, len); if (i != j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } } /*-----------------quick sort------------------*/ void _qsort(int a[], int low, int high) { int i = low, j = high, tmp = 0; int key = a[low]; if (low < high) { while (i < j) { while ((i < j) && (key <= a[j])) { --j; } //find one a[i] = a[j]; while ((i < j) && (key >= a[i])) { ++i; } a[j] = a[i]; } //record key location a[i] = key; _qsort(a, low, i - 1); _qsort(a, j + 1, high); } } void QuickSort(int a[], int len) { _qsort(a, 0, len - 1); } /*---------------Insertsort-----------------*/ void InsertSort(int a[], int len) { int i, j, tmp; for (i = 1;i < len; i ++) { tmp = a[i];/* value to be sorted */ if (a[i] < a[i-1]) { j = i - 1; while ((j >= 0) && (tmp < a[j])) { a[j+1] = a[j];/* move the sorted array */ j --; } a[j+1] = tmp; /* insert the value into sorted array */ } } } /*----------------Shellsort-----------------*/ void ShellSort(int a[], int len) { int i = 0, j = 0; int step = len; do { step = (step / 3) + 1; for (i = step; i < len; i += step) { if (a[i] < a[i-step]) { int tmp = a[i]; j = i - step; while ((j >= 0) && (tmp < a[j])) { a[j+step] = a[j]; j -= step; } a[j+step] = tmp; } } } while (step > 1); } void MergeSort(int a[], int len) { //TO DO. } void heapSort(int a[], int len) { //TO DO. }
相关文章推荐
- android gridview几个重要属性(android:listSelector自带内部padding分析)
- JDBC 开发 MySQL 客户端应用程序几个重要的sql语句
- 几个重要的网络结构体
- 给定几个数,进行排序
- 十、Git的几个重要概念
- X3数据表定义几个重要的属性
- android ListView 几个重要属性
- oracle的几个排序函数 ROW_NUMBER()/DENSE_RANK()/RANK()
- 影响Mysql性能的几个重要参数说明
- 关于SAP的TABLEVIEW编程的几个重要变量值的变化列表
- DirectX API 记录----几个重要的结构体
- 几个重要的TCP/IP选项解析(Java Socket)
- 在微软开发软件的几个重要专业
- 数据结构内部排序方法
- 【内核】几个重要的linux内核文件【转】
- 内部排序之选择排序(直接选择排序,堆排序)
- Linux指令的几个重要概念
- 【转载】人最重要的几个素质/能力
- 关于AJAX的几个重要概念
- Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构