数据结构常用查询算法
2016-04-18 22:22
309 查看
/**
交互两个数据
*/
inline void swap(int *a,int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
/**
冒泡排序
*/
void bubbleSort(int len,int table[]) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len -1- i; j++) {
if (table[j] > table[j + 1]) {
swap(&table[j],&table[j+1]);
}
}
}
}
/**
选择排序
*/
void selectSort(int len, int table[]) {
for (int i = 0; i < len; i++) {
int k = i;
for (int j = i + 1; j < len; j++) {
if (table[j] < table[k]) {
k = j;
}
}
if (k != i) {
swap(&table[i], &table[k]);
}
}
}
/*
插入排序
*/
void insertSort(int len, int table[]) {
for (int i = 1; i < len; i++) {
int j = i - 1;
int temp = table[i];
while (j >= 0 && table[j] > temp) {
table[j + 1] = table[j];
j--;
}
table[j + 1] = temp;
}
}
/*
快速排序
*/
void quickSort(int left,int right, int table[]) {
if (left < right) {
int key = table[left];
int l = left, r = right;
while (l < r) {
while (l<r && table[r]>key) {
r--;
}
swap(&table[l], &table[r]);
while (l<r && table[l] < key) {
l++;
}
swap(&table[l], &table[r]);
}
quickSort(left, l - 1, table);
quickSort(l+1, right, table);
}
交互两个数据
*/
inline void swap(int *a,int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
/**
冒泡排序
*/
void bubbleSort(int len,int table[]) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len -1- i; j++) {
if (table[j] > table[j + 1]) {
swap(&table[j],&table[j+1]);
}
}
}
}
/**
选择排序
*/
void selectSort(int len, int table[]) {
for (int i = 0; i < len; i++) {
int k = i;
for (int j = i + 1; j < len; j++) {
if (table[j] < table[k]) {
k = j;
}
}
if (k != i) {
swap(&table[i], &table[k]);
}
}
}
/*
插入排序
*/
void insertSort(int len, int table[]) {
for (int i = 1; i < len; i++) {
int j = i - 1;
int temp = table[i];
while (j >= 0 && table[j] > temp) {
table[j + 1] = table[j];
j--;
}
table[j + 1] = temp;
}
}
/*
快速排序
*/
void quickSort(int left,int right, int table[]) {
if (left < right) {
int key = table[left];
int l = left, r = right;
while (l < r) {
while (l<r && table[r]>key) {
r--;
}
swap(&table[l], &table[r]);
while (l<r && table[l] < key) {
l++;
}
swap(&table[l], &table[r]);
}
quickSort(left, l - 1, table);
quickSort(l+1, right, table);
}
相关文章推荐
- Python 数据结构与算法 —— 插入排序
- 数据结构 C语言 严蔚敏版 算法2.1
- 数据结构之快慢指针查找链表中间结点
- MySQL索引背后的数据结构及算法原理--优化
- 数据结构第四章上机实验
- 数据结构—文本串加密
- 数据结构-队列_习题
- 浙江大学MooC数据结构OJ——复杂度
- 重学数据结构系列之——静态查找表查找算法
- [汇总] 数据结构与算法
- 数据结构上机:字符串的加密解密
- 串的基本运算实现-加密解密串
- 数据结构杂谈(三)堆排序
- 数据结构之排序查找
- 数据结构-循环顺序队列的基本操作
- 数据结构算法——顺序表
- 数据结构之二叉搜索树
- 树-Binary Tree Level Order Traversal II(反向打印二叉树)
- 数据结构-稀疏矩阵
- 数据结构-链式队列的基本操作