几种排序方法的实现
2013-12-23 10:21
417 查看
#include <iostream> #include <stdio.h> using namespace std; //插入排序 void insert_sort_increase(int *num, int size) { int tmp = 0; int j = 0; for (int i = 1; i < size; i++) { if (num[i] < num[i-1]) { tmp = num[i]; for (j = i; j > 0 && tmp < num[j-1]; j-- ) { num[j] = num[j-1]; } num[j] = tmp; } } } //冒泡排序 void bubble_sort_increase(int *num, int size) { int tmp; for (int i = 1; i < size; i++) { for (int j = 0; j < size-i; j++) { if (num[j]>num[j+1]) { tmp = num[j]; num[j] = num[j+1]; num[j+1] = tmp; } } } } //选择排序 void select_sort_increase(int *num, int size) { int tmp; int pos; for (int i = 1; i < size; i++) { tmp = num[i-1]; pos = i-1; for (int j = i ; j < size; j++) { if (num[j] < tmp ) { tmp = num[j]; pos = j; } } num[pos] = num[i-1]; num[i-1] = tmp; } } //谢尔排序 void shell_sort_increase(int *num, int size) { int tmp = 0; int j = 0; for (int gop = size/2; gop > 0; gop /=2) { for (int i = gop; i < size; i++) { tmp = num[i]; for ( j = i; j >= gop && tmp<num[j-gop]; j -= gop) { num[j] = num[j-gop]; } num[j] = tmp; } } } //快速排序 void quick_sort_increase(int *num, int left, int right) { int l = left; int r = right; int tmp = num[l]; //选取第一个为驱轴 while (l < r) { while(r > l && tmp <= num[r]) { r--; } if (l < r) { num[l++] = num[r]; } while (r > l && tmp >= num[l]) { l++; } if (l < r) { num[r--] = num[l]; } } num[l] = tmp; if(left < l-1) { quick_sort_increase(num, left, l-1); } if (r+1 < right) { quick_sort_increase(num, r+1, right); } } void quick_sort_increase(int *num, int size) { quick_sort_increase(num,0, size-1); } int main() { int num[10]={5,1,6,45,22,24,51,23,12,17}; //insert_sort_increase(num, 10); //bubble_sort_increase(num, 10); //select_sort_increase(num, 10); //shell_sort_increase(num, 10); quick_sort_increase(num, 10); for (int i=0; i < 10; i++) { cout << num[i] << " "; } cout << endl << "*********************************************" << endl; getchar(); return 0; }
相关文章推荐
- Java实现几种常见排序方法
- Java实现几种常见排序方法(下)
- 【排序】【Java】Java实现几种常见排序方法
- Java实现几种常见排序方法
- 基于C++语言实现的几种常用的排序方法小结(一)
- java实现排序的几种方法
- Java实现几种常见排序方法
- 几种常用排序方法的C#实现
- Java实现几种常见排序方法
- Java实现几种常见排序方法
- 几种排序方法在oc中实现
- Java实现几种常见排序方法
- 几种排序方法的C语言实现
- Java实现几种常见排序方法
- 《面试》 几种经典的简单的排序方法(冒泡,选择,插入)python实现
- Java实现几种常见排序方法
- Java实现几种常见排序方法
- Java实现几种常见排序方法(上)
- java 实现几种常见排序方法
- 几种排序方法的实现及链表的初始化问题