一维数组的应用--排序

原创 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]);

}

 

 

一维数组排序方法

数组排序的三种方法分析 一、利用冒泡法对N个数排序算法步骤如下: 算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n...
  • kongweishang3
  • kongweishang3
  • 2015年12月18日 11:30
  • 2980

PHP常用一维数组排序

  • lz0426001
  • lz0426001
  • 2014年11月25日 17:09
  • 503

1119: 一维数组排序

1119: 一维数组排序 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 5841  Solved: 3138 SubmitStatusWeb...
  • zzuli_Acmer
  • zzuli_Acmer
  • 2017年11月06日 16:26
  • 441

精彩百例:一维数组,选择排序

/* file name:选择法排序 重点在于循环赋值给min,找出最小值的排序方法 */ # include int main(void) { int i, j, min, t...
  • lovefeelme123
  • lovefeelme123
  • 2015年03月27日 21:44
  • 289

一维数组常见的三种排序、冒泡排序、选择排序、插入排序、Arrays内置排序

一维数组的 冒泡排序 选择排序 插入排序 Arrays内置排序 * 一维数组的排序 * 冒泡排序 * 选择排序 * 插入排序 * Arrays类内...
  • sunrainamazing
  • sunrainamazing
  • 2017年01月21日 14:04
  • 702

【郑轻oj】1119 - 一维数组排序(sort快排)

1119: 一维数组排序 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 3097  Solved: 1620 SubmitStatusWeb Bo...
  • Bear1998
  • Bear1998
  • 2016年01月17日 20:02
  • 706

JAVA中对一维数组排序的方法(在快速排序上进行的优化)

对于搞算法的人经常使用到快排(快速排序的简称), 对于C++中的sort(,,)来说是快排的方法,相对来说对于JAVA来说,也有快排的调用, 这里的方法是 Arrays.sort(数组名字); ...
  • u012965373
  • u012965373
  • 2015年02月07日 17:55
  • 1712

C#之一维数组的使用学习案例

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Arra...
  • riyuedangkong1
  • riyuedangkong1
  • 2016年08月29日 17:01
  • 225

一维数组的简单应用

源程序: public class Test{ public static void main(String[] args){ int a[] = {45 , 63 , 84 , 15 , 25 ,...
  • chunxiaoyuye
  • chunxiaoyuye
  • 2016年03月11日 23:04
  • 275

【2016.1.27】一维数组中排序输出数

package com.geminno.he0127; import java.sql.Array; import java.util.Arrays; public class Test05Pai...
  • he775183940
  • he775183940
  • 2016年01月28日 11:53
  • 72
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一维数组的应用--排序
举报原因:
原因补充:

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