一维数组的应用--排序
2011-01-07 21:26
330 查看
1. 简单比较排序
使用for循环描述i,j的变化规律,并推广到n个元素。
i 外循环变量控制比较次数,i=0,i<n-1
j 内循环变量控制一次内的比较、交换,j=i+1,j<n
例1:简单比较循环
#include<stdio.h>
main(){
int a[10];
int i,j;
int temp=0;
printf("please input ten number random:/n");
for(i=0;i<10;i++)//输入10个数
scanf("%d",&a[i]);
printf("the number you have input is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
for(i=0;i<9;i++)//简单比较排序
for(j=i+1;j<10;j++){
if(a[i]>a[j]){//换序
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("the changed secquence is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
}
2. 冒泡循环
使用for循环描述i,j的变化规律,并推广到n个元素。
i 外循环变量控制比较次数,i=0,i<n-1
j 内循环变量控制两两比较元素的下标,j=0,j<n-i-1
例2:冒泡排序
#include<stdio.h>
main(){
int a[10];
int i,j;
int temp=0;
printf("please input ten number random:/n");
for(i=0;i<10;i++)//输入10个数
scanf("%d",&a[i]);
printf("the number you have input is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
for(i=0;i<10;i++)//冒泡排序
for(j=0;j<9-i;j++){
if(a[j]>a[j+1]){//换序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("the changed secquence is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
}
3. 选择排序
算法描述:从a[0]元素开始找出最小值元素的下表min,将a[0]元素与a[min]元素进行交换;第二趟,从a[1]元素开始[b]
[b]
最小值元素的下表min,将a[1]元素与
a[min]元素进行交换。
[b]
使用for循环描述i,j的变化规律,并推广到n个元素。
i 外循环变量控制比较次数,i=0,i<n-1
j 内循环变量控制找元素值最小的下标,j=i+1,j<n
例3:选择排序
#include<stdio.h>
main(){
int a[10];
int i,j,min;
int temp=0;
printf("please input ten number random:/n");
for(i=0;i<10;i++)//输入10个数
scanf("%d",&a[i]);
printf("the number you have input is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
for(i=0;i<10;i++)//冒泡排序
{
min=i;
for(j=i;j<10;j++){
if(a[j]<a[min])//换序
min=j;
}
if(min!=i){
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
printf("the changed secquence is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
}
[/b]
[/b]
[/b]
使用for循环描述i,j的变化规律,并推广到n个元素。
i 外循环变量控制比较次数,i=0,i<n-1
j 内循环变量控制一次内的比较、交换,j=i+1,j<n
例1:简单比较循环
#include<stdio.h>
main(){
int a[10];
int i,j;
int temp=0;
printf("please input ten number random:/n");
for(i=0;i<10;i++)//输入10个数
scanf("%d",&a[i]);
printf("the number you have input is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
for(i=0;i<9;i++)//简单比较排序
for(j=i+1;j<10;j++){
if(a[i]>a[j]){//换序
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("the changed secquence is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
}
2. 冒泡循环
使用for循环描述i,j的变化规律,并推广到n个元素。
i 外循环变量控制比较次数,i=0,i<n-1
j 内循环变量控制两两比较元素的下标,j=0,j<n-i-1
例2:冒泡排序
#include<stdio.h>
main(){
int a[10];
int i,j;
int temp=0;
printf("please input ten number random:/n");
for(i=0;i<10;i++)//输入10个数
scanf("%d",&a[i]);
printf("the number you have input is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
for(i=0;i<10;i++)//冒泡排序
for(j=0;j<9-i;j++){
if(a[j]>a[j+1]){//换序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("the changed secquence is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
}
3. 选择排序
算法描述:从a[0]元素开始找出最小值元素的下表min,将a[0]元素与a[min]元素进行交换;第二趟,从a[1]元素开始[b]
[b]
最小值元素的下表min,将a[1]元素与
a[min]元素进行交换。
[b]
使用for循环描述i,j的变化规律,并推广到n个元素。
i 外循环变量控制比较次数,i=0,i<n-1
j 内循环变量控制找元素值最小的下标,j=i+1,j<n
例3:选择排序
#include<stdio.h>
main(){
int a[10];
int i,j,min;
int temp=0;
printf("please input ten number random:/n");
for(i=0;i<10;i++)//输入10个数
scanf("%d",&a[i]);
printf("the number you have input is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
for(i=0;i<10;i++)//冒泡排序
{
min=i;
for(j=i;j<10;j++){
if(a[j]<a[min])//换序
min=j;
}
if(min!=i){
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
printf("the changed secquence is:/n");
for(i=0;i<10;i++)//输出输入的10个数
printf("%d/t",a[i]);
}
[/b]
[/b]
[/b]
相关文章推荐
- 一维数组的排序与复制,二维数组的打印
- 4820:【一维数组】排序后的奇数项 分数:
- Java对一维数组排序:冒泡,选择,插入,比较效率
- 一维数组的应用
- 一维数组的排序方法----冒泡排序
- 一维数组排序方法
- 练习LINQ:同时操作二维和一维数组,把二维数组转为一维,计算一维和二维值,字符串组合,计算数组和,数组筛选,排序
- 精彩百例:一维数组,选择排序
- 一维数组、数组排序、字符数组
- Java基础学习应用_数组常用方法与排序(二)
- 【PHP应用】一维数组构建树形数组,用于商品分类
- 作业《IOS_C语言》一维数组、数组排序、字符数组
- java基础知识(六) 数组中copy、排序、查找的应用
- 1456 一维数组排序【使用sort函数巧解,以后再也不用写老长的冒泡排序代码了,附四种代码及如何新建C++代码源文件(最后一种时C中的qsort函数)】 Problem B
- 一维动态数组的应用
- codeforce 369E 离线树状数组+左端点排序右端点维护 一维下 求点集覆盖线段数量
- JAVA程序设计(08)-----数组初级应用 排序
- 归并排序思想应用之----求数组中的逆序对
- java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例
- 数组高级应用—排序与查找