排序算法
来源:互联网 发布:炒股软件的定制 编辑:程序博客网 时间:2024/06/05 19:39
1.插入法
理论:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
代码:
int a[] = {70,45,30,50};
for (int i = 1 ; i < 4; i++) {
//待插入元素
int temp = a[i];
int j;
for (j = i -1 ; j >=0; j--) {
//将大于temp往后移动一位
if (a[j] >temp) {
a[j+1] = a[j];
}else{
break;
}
}
a[j+1] = temp;
}
for (int i = 0 ; i < 4 ; i++) {
printf("%d \t ", a[i]);
}
2.选择排序法
理论:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
//选择排序
int b[] = {15,40,10 ,20};
for (int i = 0 ; i < 4; i++) {
int min = b[i];
int n =i ;//最小数
for (int j = i+1; j< 4; j++) {
if (b[j] <min) {
min = b[j];
n = j ;
}
}
b[n ] =b[i];
b[i] = min;
}
for (int i = 0 ; i < 4 ; i++) {
printf("%d--- ", b[i]);
}
3.冒泡排序
理论:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
int a[] = {23,45,30,50};
for (int i = 0; i < 4; i++) {
for (int j = i; j < 4-1 - i; j++) {
if (a[j]>a[j+1]) {
int temp = a[j];
a[j] =a[j+1];
a[j+1] = temp;
}
}
}
for (int i = 0 ; i < 4 ; i++) {
printf("%d ", a[i]);
}
待续。。。
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- window 安装 pip 链接
- sencha cmd项目主题修改
- Mac下Idea编译报错:javacTask: 源发行版 1.7 需要目标发行版 1.7
- 设置maven项目java的版本
- 整数求和
- 排序算法
- 输入入门Ⅰ
- 最近学习计划
- 输入入门Ⅱ
- 输入入门Ⅲ
- apache vhosts或httpd.conf配置虚拟主机
- Android中的Parcelable接口
- 正则表达式应用案例 (notepad++中)
- Asp.net MVC中传递ViewData数据不能正确传递的问题