冒泡排序、选择排序和插入排序--由小到大,,由大到小

来源:互联网 发布:算法工程师经常加班么 编辑:程序博客网 时间:2024/06/07 00:33





//选择排序 #include <iostream>#include <stdio.h>//--------------------------------------------------------------------//从大到小排序 冒泡排序 void sort_bubble_down(int* a,int len){int temp = 0;int i = 0;int j = 0;for(i=0;i<len;i++){for(j=i+1;j<len;j++){if(a[i]<a[j]){temp = a[i];a[i] = a[j];a[j] = temp;}}}}//从小到大排序 冒泡排序 void sort_bubble_up(int* a,int len){int temp = 0;int i = 0;int j = 0;for(i=0;i<len;i++){for(j=i+1;j<len;j++){if(a[i]>a[j]){temp = a[i];a[i] = a[j];a[j] = temp;}}}}  //--------------------------------------------------------------------//从小到大排序 选择排序 void sort_select_up(int* a,int len){int i = 0;int j = 0;int k = 0;for(i=0;i<len;i++){k = i; for(j=i+1;j<len;j++){if(a[k]>a[j]){k = j;}}if(i!=k) {a[i] = a[i]+a[k];a[k] = a[i]-a[k];a[i] = a[i]-a[k];}}}//从大到小排序 选择排序 void sort_select_down(int* a,int len){int i = 0;int j = 0;int k = 0;for(i=0;i<len;i++){k = i; for(j=i+1;j<len;j++){if(a[k]<a[j]){k = j;}}if(i!=k) {a[i] = a[i]+a[k];a[k] = a[i]-a[k];a[i] = a[i]-a[k];}}}//--------------------------------------------------------------------//从小到大排序 插入排序 void sort_insert_up(int* a,int len){int i = 0;int j = 0;int k = 0;int temp = 0;for(i=1;i<len;i++){k = i;temp = a[k]; for(j=i-1;j>=0;j--){if(a[j]>temp){a[j+1] = a[j];k = j;//记下移动的位置 }}a[k] = temp;//插入 }}//从大到小排序 插入排序 void sort_insert_down(int* a,int len){int i = 0;int j = 0;int k = 0;int temp = 0;for(i=1;i<len;i++){k = i;temp = a[k]; for(j=i-1;j>=0;j--){if(a[j]<temp){a[j+1] = a[j];k = j;//记下移动的位置 }}a[k] = temp;//插入 }}//--------------------------------------------------------------------int main(int argc, char *argv[]) {int array[10] = {0};int index = 0;int i = 0;printf("please input 10 number!\n");while((scanf("%d",&array[index]) != EOF)&&(getchar()!='\n')){index++;}printf("index = %d\n",index);for(i=0;i<=index;i++){printf("%dth : %d\n",i,array[i]);}printf("down...\n");sort_insert_down(array,index+1);for(i=0;i<=index;i++){printf("%dth : %d\n",i,array[i]);}printf("up...\n");sort_insert_up(array,index+1);for(i=0;i<=index;i++){printf("%dth : %d\n",i,array[i]);}return 0;}


1 0
原创粉丝点击