c语言升序排列
1. c语言:编写一个程序用冒泡排序实现升序排列
1、首先打开一个空白的C语言文件,首先先定义一组待排序的数列以及各个变量,接着就是用来处理排序的逻辑:
2. C语言 如何对二维数组升序排列
for(int i=0;i<6;i++){
for(int j=0;j<6-i;j++){
if(a[0][j]>a[0][j+1]){
int temp=a[0][j];
a[0][j]=a[0][j+1];
a[0][j+1]=temp;
}
if(a[1][j]>a[1][j+1]){
int temp=a[1][j];
a[1][j]=a[1][j+1];
a[1][j+1]=temp;
}
}
}
3. C语言,数组数据升序排列
#include <stdio.h>
#include <malloc.h>
int main()
{
int *p=NULL,n=0;
int i,j,temp;
printf("请输入数组大小!\n");
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
if(p==NULL)
{
printf("内存不足分配失败!\n");
return 0;
}
printf("请为%d个元素赋值如 1 2 3\n",n);
for(i=0;i<n;++i)
scanf("%d",p+i);
for(i=1;i<n;++i)
{
for(j=0;j<n-i;++j)
if(p[j]>p[j+1])
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
printf("排序结果!\n");
for(i=0;i<n;++i)
printf("%5d",p[i]);
printf("\n");
return 0;
}
4. C语言字符升序排列~
voidmain()
{
charc[10];
inti;
intj;
inttemp;
intlength;
gets(c);
length=strlen(c);//你可能输入不到10个字符,所以确定总共字符数
for(i=0;i<length-1;i++)//for(i=0;i<9;i++)
for(j=0;j<length-1-i;j++)//这儿问题最大for(j=0;j<9;j++)
if(c[j]>c[j+1])
{
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
puts(c);
}
5. C语言,数据升序排列
#include"stdio.h"
intmain(intargc,char*argv[]){
inta[100],i,j,k,n;
printf("Inputn(int0<n<101)... ");
if(scanf("%d",&n)!=1||n<1||n>100){
printf("Anerroroccurredwheninputn,exit... ");
return0;
}
printf("Pleaseenter%dinteger(s)... ",n);
for(i=0;i<n;scanf("%d",a+i++));
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k-i)
j=a[k],a[k]=a[i],a[i]=j;
printf(i?"%d":"%d",a[i]);
}
printf(" ");
return0;
}
运行样例:
6. c语言 使用冒泡排序将一维数组A中的N个元素升序排列
方法和详细的操作步骤如下:
1、第一步,打开C文件,定义一组序列和要排序的各种变量,然后处理排序逻辑,具体的代码见下图,转到下面的步骤。
7. c语言三种排序
常用的c语言排序算法主要有三种即冒泡法排序、选择法排序、插入法排序。
一、冒泡排序冒泡排序:
是从第一个数开始,依次往后比较,在满足判断条件下进行交换。代码实现(以降序排序为例)
#include<stdio.h>
int main()
{
int array[10] = { 6,9,7,8,5,3,4,0,1,2 };
int temp;
for (int i = 0; i < 10; i++)
{//循环次数
for (int j = 0; j <10 - i-1; j++)
{
if (array[j] < array[j+1])
{//前面一个数比后面的数大时发生交换 temp = array[j];
array[j] = array[j+1];
array[j + 1] = temp;
}
}
} //打印数组 for (int i = 0; i < 10; i++) printf("%2d", array[i]); return 0;}}
二、选择排序以升序排序为例:
就是在指定下标的数组元素往后(指定下标的元素往往是从第一个元素开始,然后依次往后),找出除指定下标元素外的值与指定元素进行对比,满足条件就进行交换。与冒泡排序的区别可以理解为冒泡排序是相邻的两个值对比,而选择排序是遍历数组,找出数组元素与指定的数组元素进行对比。(以升序为例)
#include<stdio.h>
int main()
{
int array[10] = { 6,9,7,8,5,3,4,0,1,2 };
int temp, index;
for (int i = 0; i < 9; i++) {
index = i;
for (int j = i; j < 10; j++)
{
if (array[j] < array[index])
index = j;
}
if(i != index)
{
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
for(int i=0;i<10:i++)
printf("%2d"array[i])
return 0;
}
三、快速排序
是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
void QuickSort(int* arr, int size)
{
int temp, i, j;
for(i = 1; i <size; i++)
for(j=i; j>0; j--)
{
if(arr[j] <arr[j-1])
{
temp = arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}