冒泡排序

来源:互联网 发布:java解析epub 书签 编辑:程序博客网 时间:2024/06/05 16:10
#include<stdio.h>#include<stdlib.h>#define n 10main(){    int i,j,arr[n];    srand((unsigned int)time(NULL));    for(i=0; i<n; i++)    {        arr[i]=rand()%100;        printf("%d ",arr[i]);    }    printf("\n");//    for(i=0; i<n-1; i++)//    {//       int jmin=i;//       for(j=i+1;j<n;j++)//        if(arr[j]<arr[jmin])//            jmin=j;//        if(jmin!=i)//        {//            int t=arr[i];//            arr[i]=arr[jmin];//            arr[jmin]=t;//        }//    }for(i=0;i<n-1;i++)//选择排序{    int min=i;    for(j=i+1;j<n;j++)    if(arr[min]>arr[j])        min=j;        if(i!=min)        {            int t=arr[min];            arr[min]=arr[i];            arr[i]=t;        }}    for ( i = 0; i < n; i++)        printf("%d ", arr[i]);    return 0;}

定义一个足够大的数组,输入想要产生多大多随机数储存在组中,并用冒泡排序:
#include<stdio.h>#include<stdlib.h>#include<time.h>#define N 10000int main(){int arr[N], n;scanf("%d", &n);srand((unsigned int)time(0));puts("产生的随机数是:");for (int i = 0; i < n; i++){arr[i] = rand() % 1001;printf("%d ", arr[i]);}printf("\n");int temp;puts("从小到大排列:");for (int i = 1; i < n; i++)//冒泡排序{for (int j = 0; j < n-i; j++){if (arr[j] > arr[j + 1]){temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}for (int i = 0; i < n; i++)printf("%d ", arr[i]);return 0;}

#include<stdio.h>#include<stdlib.h>#define n 10main(){    int i,j,arr[n];    srand((unsigned int)time(NULL));    for(i=0; i<n; i++)    {        arr[i]=rand()%100;        printf("%d ",arr[i]);    }    printf("\n");    for(i=0; i<n-1; i++)        for(j=0; j<n-i-1; j++)            if(arr[j]<arr[j+1])            {                int t=arr[j];                arr[j]=arr[j+1];                arr[j+1]=t;            }    for ( i = 0; i < n; i++)        printf("%d ", arr[i]);    return 0;}

1 0