冒泡排序

来源:互联网 发布:钓炸天盗号软件app 编辑:程序博客网 时间:2024/06/09 16:38

题目:

     编写冒泡排序,排序一个整形数组。


题目分析:

    使用冒泡排序方式,对于一个n个元素的数组,至少要比较n-1个轮回,每个轮回将较大的数置到后面,最少比较n-2次,一直进行循环操作,最终能够排序一个整形数组。下面是具体的程序:

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h> void fun(int arr[]){    int i = 0;    int j = 0;    int temp = 0;    for(i = 0; i < 9; i++)    {        for(j = 0; j < 9 -i; j++)        {            if(arr[j] > arr[j+1])            {                temp = arr[j];                arr[j] = arr[j+1];                arr[j+1] = temp;             }          }    }    for(i = 0; i < 10; i++)    {        printf("%d ", arr[i]);    } } int main(){    int arr[10] = {0};    int i = 0;    printf("请输入需要排序的数:\n");    for(i = 0; i < 10; i++)    {            scanf("%d",&arr[i]);    }    fun(arr);    system("pause");    return 0;}



题目:

    使用冒泡排序,排序多个字符串。


题目分析:

     对于字符串的排序,使用冒泡排序的方式,与上面排序整形数组相类似,只是字符串的比较是利用strcpy函数,比较字符的ASCII码大小。下面是具体的程序:

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <string.h>#define num 5 int main(){    int i = 0;    int j = 0;    char arr1[num][20] = {0};    char tmp[20] = {0};    printf("请输入需要比较的字符串:\n");    for(i = 0; i < num; i++)    {        scanf("%s",arr1[i]);    }    for(i = 0; i < num; i++)    {        for(j = 0; j < num - i; j++)        {             if(strcmp(arr1[j], arr1[j + 1]) > 0)            {                strcpy(tmp, arr1[j]);                strcpy(arr1[j], arr1[j + 1]);                strcpy(arr1[j + 1], tmp);            }        }    }    printf("输出字符串的比较结果:\n");    for(i = 0; i < num; i++)    {         printf("%s\n", arr1[i]);     }    system("pause");    return 0;}


本文出自 “无心的执着” 博客,转载请与作者联系!

0 0
原创粉丝点击