选择排序与冒泡排序

xiaoxiao2021-02-28  113

通过这两种方法实现排序,代码如下:

选择排序

#include <stdio.h>  //头文件 #define N 10 //定义一个宏常量 int main() {  int a[N] = {9,99,74,6,59,48,3,2,81,0};    int i,j;    for (i = 0; i < N-1; i++)     //外层循环控制比较的轮数  {   int index = i;           for (j = i+1; j < N; j++)  //内层循环 查找每一轮中最小的元素   {    if (a[index] > a[j])    //a[0] a[index] 和a[1] a[j] 比较    {     index = j;          //index的值比j大则保存到j里面    }   }   if (index != i);         //最小数不等于 i ,比较最小数a[0]和a[i]的值      {    int tmp = a[i];      //定义一个tmp来存放a[0]原来的值    a[i] = a[index];     //把最小数放到a[0]    a[index] = tmp;   }  }  for (i = 0; i < N; i++)    //循环打印出排序好的结果  {   printf ("%d\n",a[i]);  }  return 0; }

冒泡排序

#include <stdio.h>  //头文件 #define N 10  //宏常量 int main() {  int a[N] = {9,99,74,6,59,48,3,2,81,0};    int i,j;  int tmp;                    //外层和内层循环  for (i = 0; i < N-1; i++)   // 外层循环N-1次 ,控制外城比较的轮数。  {   for (j = 0; j < N-i-1; j++) //内层循环N-i-次。内层循环控制每一轮比较需要比较的次数   {    if (a[j] > a[j+1])    //a[j]代表数组里的值 并不是下标。    {     tmp = a[j];       a[j] = a[j+1];     a[j+1] = tmp;    }   }  }  for (i = 0; i < N; i++)     //循环打印出排序好的结果  {   printf ("%d\n",a[i]);  }  return 0; }

转载请注明原文地址: https://www.6miu.com/read-62205.html

最新回复(0)