排序
来源:互联网 发布:win7 64位数据库下载 编辑:程序博客网 时间:2024/06/06 03:24
1、冒泡排序
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <time.h>#define N 10void generate(int *a,int n){int i;for(i = 0; i < n; i++){a[i] = rand()%100+100;}}void print(int *a, int n){int i;for(i = 0; i < n; i++){printf("%d\t",a[i]);}printf("\n");}void change(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}void sort(int *a, int n){int i,j;for(i = 0; i < n-1; i++){int k = 0;for(j = 0; j < n-1-i; j++){if(a[j] > a[j+1]){change(&a[j], &a[j+1]);k++;}}if(k == 0)break;}}int main(){int *a = (int *)malloc(sizeof(int)*N);time_t time1;srand((unsigned int)time(&time1));generate(a,N);print(a, N);sort(a, N);print(a, N);system("pause");return 0;}
2、选择排序
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <time.h>#define N 10void generate(int *a,int n){int i;for(i = 0; i < n; i++){a[i] = rand()%100+100;}}void print(int *a, int n){int i;for(i = 0; i < n; i++){printf("%d\t",a[i]);}printf("\n");}void change(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}void sort(int *a, int n){int i,j;int min;for(i = 0; i < n-1; i++){min = a[i];for(j = i+1; j < n; j++){if(a[j] < min){min = a[j];change(&a[i],&a[j]);}}}}int main(){int *a = (int *)malloc(sizeof(int)*N);time_t time1;srand((unsigned int)time(&time1));generate(a,N);print(a, N);sort(a, N);print(a, N);system("pause");return 0;}
3、插入排序
void sort(int *a, int n){int i, j;int temp;for(i = 1; i < n; i++){temp = a[i];j = i-1;while(j >= 0 && a[j] > temp){a[j+1] = a[j];j--;}if(j != i-1){a[j+1] = temp;}}}
4、快速排序
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <time.h>#define N 10void generate(int *a,int n){int i;for(i = 0; i < n; i++){a[i] = rand()%100+100;}}void print(int *a, int n){int i;for(i = 0; i < n; i++){printf("%d\t",a[i]);}printf("\n");}int partition(int *a, int low, int high){int p = a[low];while(low < high){while(low < high && a[high] >= p){high--;}if(low < high){a[low] = a[high];low++;}while(low < high && a[low] < p){low++;}if(low < high){a[high] = a[low];high--;}}a[low] = p;return low;}void sort(int *a, int low, int high){if(low < high){int p = partition(a, low, high);sort(a, low, p-1);sort(a, p+1, high);}}int main(){int *a = (int *)malloc(sizeof(int)*N);time_t time1;srand((unsigned int)time(&time1));generate(a,N);print(a, N);sort(a, 0, N-1);print(a, N);system("pause");return 0;}
0 0
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- java.util.date类型保存到mysql数据库报错的问题
- 【LeetCode】16_3Sum Closest
- jquery-chosen 选择框插件
- ziji
- 常识:UI行业常用名词及缩写定义
- 排序
- 阅读方法
- 排序检索C - Where is the Marble?
- Java集合深入学习--HashSet与TreeSet
- java实现排序算法之2-路插入排序,直接插入排序,折半插入排序
- 中文乱码问题(转)charset pageEncoding等区别
- Linux 设备驱动的移植
- 如何用MFC创建透明画板
- Mac下一些小工具安装报错Note