数据结构基础7.6:表排序
来源:互联网 发布:sql属于什么数据库语言 编辑:程序博客网 时间:2024/06/15 01:32
一.定义:
排序元素较大,不易直接交换,所以采用间接排序,通过交换指针来实现。
二.算法描述:
定义一个指针数组作为“表”,通过比较表中地址的值来交换地址,使得如果仅要求按顺序输出,则输出a[table[0]],a[table[1]],a[table[2]]...a[table[n - 1]]。
三.代码实现:
#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;typedef int Status;#define OK 1#define ERROR 0int *table;/* 表排序,通过数组指针对数组进行间接排序 */Status Table_Sort(int a[], int n){ int i, j, min, index, temp; if(!(table = (int*)malloc(n * sizeof(int)))) exit(1); for(i = 0; i < n; i++) table[i] = i; for(i = 0; i < n - 1; i++) { min = a[table[i]]; index = i; for(j = i + 1; j < n; j++) { if(a[table[j]] < min) { min = a[table[j]]; index = j; } } temp = table[i]; table[i] = table[index]; table[index] = temp; } return OK;}int main(){ int i; int a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; for(i = 0; i < sizeof(a) / sizeof(a[0]); i++) printf("%d ", a[i]); printf("\n"); Table_Sort(a, sizeof(a) / sizeof(a[0])); for(i = 0; i < sizeof(a) / sizeof(a[0]); i++) printf("%d ", a[table[i]]); printf("\n"); system("pause"); return 0;}
0 0
- 数据结构基础7.6:表排序
- 数据结构 基础排序算法
- 数据结构基础排序算法
- Java数据结构-基础排序
- 【数据结构基础】归并排序
- 数据结构基础 排序
- 数据结构-排序基础代码
- 数据结构基础(4) --快速排序
- 数据结构基础(5) --归并排序
- 数据结构基础(4) --快速排序
- 数据结构基础(5) --归并排序
- 数据结构基础(4) --快速排序
- 数据结构基础(5) --归并排序
- 数据结构基础7.2:希尔排序
- 数据结构基础7.3:堆排序
- 数据结构基础7.4:归并排序
- 数据结构基础7.5:快速排序
- 数据结构基础(4) --快速排序
- Java之字符串
- 首篇博客
- VS2012新建项目出现问题“未找到与约束...”已解决
- sql
- Android中使用Movie显示gif动态图
- 数据结构基础7.6:表排序
- jsp中引入外部js文件时需要注意的关键点
- HDU 5587 Array
- mysql优化方案
- Callback机制在Android中的应用场景
- 工业4.0时代,怎样为孩子筹备未来的教育
- 轻松学习JavaScript八:JavaScript函数
- 《统计学习方法》学习笔记(四)——朴素贝叶斯法
- 那些坑了我N多时间的问题(持续更新)