C语言:实现N个整数排序,并插入一个整数!

简介:

C语言是学习计算机基础,暑假一直在学Java,开学了数据结构上机,老师让编一个实现N个整数排序,

 

并插入一个整数的小程序,可是我整节课都没搞定。郁闷了许久,觉得自己太过舍本逐末了,基础都忘光了。

 

咳~~~~于是一阵恶补。好好看了看排序,总结及源码如下:

 

冒泡排序:

 

复制代码
#include  " stdio.h "
main() 

int  i,j,temp,s; 
int  a[ 10 ]; 
printf(
" 请输入10个整数: " );
for (i = 0 ;i < 10 ;i ++
scanf (
" %d, " , & a[i]); 
for (j = 0 ;j <= 9 ;j ++
for  (i = 0 ;i < 10 - j;i ++
if  (a[i] > a[i + 1 ])
{ temp
= a[i]; 
a[i]
= a[i + 1 ]; 
a[i
+ 1 ] = temp;} 

printf(
" 冒泡排序后的数列为: " ); 
for (i = 0 ;i < 10 ;i ++
printf(
" %3d " ,a[i] ); 
printf(
" \n " ); 
scanf(
" %d " , & s); // 防止运行窗口迅速关闭
复制代码

 

选择排序:

 

Code

 

实现N个整数排序,并插入一个整数源码:

 

复制代码
#include  < stdio.h >
main(){
 
int  n;
 
int  a[ 100 ];
 
int  i,j,k,t,x,s;
 printf(
" 输入数列长度:\n " );
 scanf(
" %d " , & n);
 printf(
" 请输入%d个整数:\n " ,n);
 
for (i = 0 ;i < n;i ++ ){
  scanf(
" %d " , & a[i]);
 }
 
for (i = 0 ;i < n;i ++ ){ //  排序
  k = i;
  
for (j = i;j < n - 1 ;j ++ ){
   
if (a[k] > a[j + 1 ]){
    k
= j + 1 ;
   }
  }
  
if (k != i){
   t
= a[i];
   a[i]
= a[k];
   a[k]
= t;
  }
 }
 printf(
" \n " ); 
 printf(
" 排序后的数列:\n " );
 
for (i = 0 ;i < n;i ++ ){
  printf(
" %d  " ,a[i]); 
 }
 printf(
" \n " ); 
 printf(
" 请输入要插入的数: " );
 scanf(
" %d " , & x);
 
for (i = 0 ;i < n;i ++ ){
  
if (x > a[i] && x < a[i + 1 ]){
   k
= i + 1 ;
   
break ;
  }
 }
 
for (i = n;i > k;i -- ){
  a[i]
= a[i - 1 ];
 }
 a[k]
= x;
 printf(
" 插入%d后的排序数列为: " ,x);
 
for (i = 0 ;i <= n;i ++ ){
  printf(
" %d  " ,a[i]); 
 }
 scanf(
" %d " ,s);  // 同上
}
复制代码

 

全部代码都测试通过,正确无误!


本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2008/09/03/1283403.html,如需转载请自行联系原作者

相关文章
|
4天前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
31 8
|
4天前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
21 7
|
30天前
|
算法 C语言
【C语言】排序查找
【C语言】排序查找
|
5月前
|
C语言
【C语言刷题每日一题#牛客网BC6】输入三个整数,输出第二个整数
【C语言刷题每日一题#牛客网BC6】输入三个整数,输出第二个整数
|
1月前
|
NoSQL 算法 Redis
Redis的实现三:c语言实现平衡二叉树,通过平衡二叉树实现排序集
本博客介绍了如何在C语言中实现一个平衡二叉树,并通过这个数据结构来模拟Redis中的排序集功能。
12 0
|
5月前
|
C语言
C语言:从键盘读入三个整数,按从大到小输出
C语言:从键盘读入三个整数,按从大到小输出
|
5月前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
5月前
|
C语言
【C语言刷题每日一题】——求1到100中包含数字9的整数的个数
【C语言刷题每日一题】——求1到100中包含数字9的整数的个数
|
5月前
|
C语言
C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
|
5月前
|
C语言
【C语言刷题系列】交换整数的奇数位和偶数位
【C语言刷题系列】交换整数的奇数位和偶数位