#include <stdio.h> #include <string.h> #include <stdlib.h>
#define SIZE 10
void swap(int *pa, int *pb) { int temp = 0; temp = *pb; *pb = *pa; *pa = temp; }
//选择 void select_order(int *table_num, int length) { int i = 0,j = 0; for(i=0; i<length; i++) { for(j=i+1; j<length; j++) { if(table_num[i] > table_num[j]) { swap(&table_num[i], &table_num[j]); } } } }
//冒泡
void bubble_order(int *table_num, int length) { int i = 0,j = 0; for(i=0; i<length; i++) { for(j=0; j<length-i-1; j++) { if(table_num[j] > table_num[j+1]) { swap(&table_num[j], &table_num[j+1]); } } } }
//希尔
void xier_order(int *table_num, int length) { int i =0, flag = 0; int gap = length; while(gap > 0) { gap = gap/2;
//内部为冒泡排序 do { flag = 0; for(i=0; i<length-gap; i++) { if(table_num[i] > table_num[i+gap]) { swap(&table_num[i], &table_num[i+gap]); flag = 1; } } }while(flag); } }
//输出
void traverse_array(int *table_num, int length) { int i = 0; for(i=0; i<length; i++) { printf("Input %d: %d\n", i, table_num[i]); } }
//输入
void input_array(int *table_num, int length) { int i = 0; memset(table_num, 0, length); for(i=0; i<length; i++) { printf("Input %d: \n", i); scanf("%d", &table_num[i]); } }
int main() { int table_num[SIZE]; memset(table_num, 0, sizeof(table_num)/sizeof(int));
input_array(table_num, sizeof(table_num)/sizeof(int)); //输入
select_order(table_num, sizeof(table_num)/sizeof(int)); //选择排序
bubble_order(table_num, sizeof(table_num)/sizeof(int)); //冒泡排序
xier_order(table_num, sizeof(table_num)/sizeof(int)); //希尔排序
traverse_array(table_num, sizeof(table_num)/sizeof(int)); //遍历
return 0; }
数据结构(数组)--冒泡与选择
最新推荐文章于 2020-12-03 19:31:47 发布