您的位置:首页 > 理论基础 > 数据结构算法

数据结构常用查询算法

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: