我是靠谱客的博主 妩媚摩托,这篇文章主要介绍黑马程序员_数组的排序法数组的排序法,现在分享给大家,希望可以做个参考。

---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------

数组的排序法

一共有五种方法

输入数组

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h> int main(){ int i; int a[10]; for(i=0;i<10;i++){ printf("请输入数组a[%d]保存的数字:",i); scanf("%d",&a[i]); } void test5(int left,int right,int a[]); test5(0,9,a); for(i=0;i<10;i++){ printf("a[%d]=%dn",i,a[i]); } return 0; }

选择排序法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void test1(int a[]){ int i,j,t,pos; for (i=0; i<10; i++) { t=a[i]; pos=i; for (j=i+1; j<10; j++) { if(t>a[j]){ t = a[j]; pos = j; } } a[pos]=a[i]; a[i]= t; } }

冒泡排序法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//冒泡排序法 void test2(int a[]){ int i,j,t; for (i=1; i<10; i++) { for(j=9;j>=i;j--){ if(a[j]<a[j-1]){ t=a[j]; a[j]=a[j-1]; a[j-1]=t; } // printf("%d",a[j]); } } }

交换排序法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//交换排序法 void test3(int a[]){ int i,j,t; for (i=0; i<9; i++) { for (j=i+1; j<10; j++) { if(a[i]>a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; } } } }

插入排序法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//插入排序法 void test4(int a[]){ int i,t,pos; for (i=1; i<10;i++) { t = a[i]; pos = i - 1; while ((pos>=0)&&(t<a[pos])) { a[pos+1] = a[pos]; pos--; } a[pos+1] = t; } }


折半排序法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//折半排序法 void test5(int left,int right,int a[]){ int i,j,middle,t; i=left; j=right; middle = a[(left+right)/2]; do{ while ((a[i]<middle)&&(i<right)) i++; while((a[j]>middle)&&(j>left)) j--; if (i<=j) { t = a[i]; a[i] = a[j]; a[j] = t; i++; j--; } }while(i<=j); if (left<j) test5(left, j, a); if(right>i) test5(i,right,a); }





---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net

最后

以上就是妩媚摩托最近收集整理的关于黑马程序员_数组的排序法数组的排序法的全部内容,更多相关黑马程序员_数组内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部