排序算法
2015-11-12 00:28
381 查看
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]);
}
待续。。。
理论:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
代码:
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]);
}
待续。。。
相关文章推荐
- android 代码实现控件之间的间距
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- [Android]在代码里运行另一个程序的方法
- 在命令行用 sort 进行排序
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 肯特·贝克:改变人生的代码整理魔法
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 网页恶意代码的预防
- 文件遍历排序函数
- 高手写的Tracer-Flash代码调试类代码下载
- C#选择排序法实例分析
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- CreateWeb.vbs 代码
- C#插入法排序算法实例分析
- Lua中编译执行代码相关的函数详解