一维数组的应用--排序

原创 2011年01月07日 21:26:00

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]元素开始
最小值元素的下表min,将a[1]元素与
a[min]元素进行交换。


使用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]);

}

 

 

C#控制台基础 应用冒泡排序(从大到小,从小到大)对int一维数组进行排序

慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 using System; using System.Collections.Gener...

一维数组排序

  • 2017年06月10日 11:39
  • 11KB
  • 下载

一维数组的四种排序

  • 2013年06月09日 19:10
  • 2KB
  • 下载

用C#统计未排序一维数组中重复元素的个数

需求描述:从控制台输入一组整数,整数在50个以内统计实际输入的数据个数输出双栏列表,第一栏是数组元素列表,第二栏是每个数据值出现的次数 源代码如下: int[] data =...
  • Joven0
  • Joven0
  • 2012年09月14日 21:18
  • 5743

1119: 一维数组排序

1119: 一维数组排序 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 5841  Solved: 3138 SubmitStatusWeb...

一维数组的应用

  • 2014年09月18日 00:13
  • 25KB
  • 下载

codeforce 369E 离线树状数组+左端点排序右端点维护 一维下 求点集覆盖线段数量

题意: 在一维的x轴上 给定n个线段, m个询问 每个询问 cut个点, 问该点集覆盖的线段数量   思路: ans[i] 表示 第 i 个询问的答案,设 ans[i] = n, 再减去 不在点集中的...

c 返回排序后的一维数组

c 中给数组排序,其实很容易实现,和Java中是类似的。但是C中麻烦的是,如何传递数组参数,如何返回数组。但是,c中数组,完全可以使用指针表示。于是,利用指针来传递数组及返回数组。#include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一维数组的应用--排序
举报原因:
原因补充:

(最多只允许输入30个字)