指针选择排序法,10个整数从小到大排序

//指针方法,选择排序法对10个int按从小到大排列
#include<stdio.h>
main()
{
    int n=10,i,b,a[10],*p;
    int sort(int *q,int n);
   // scanf("%d",&10);
   for(p=a;p<a+10;p++)//键盘输入数组元素
       scanf("%d",p);
       p=a;//超重要!!!!!!!!!!不能忘
       sort(p,10);//调用函数
       for(p=a;p<a+10;p++)//输出排序之后的函数
       printf("%3d",*p);
}
int sort(int *q,int n)
{
    int *p,i,*j,*k,t;
    for(k=q;k<q+9;k++)
    {
        p=k;
        for(j=p+1;j<q+10;j++)
          if(*p>*j)
          p=j;
        //*k=*p;
         t=*k;
        *k=*p;
        *p=t;
    }
}

这个指针函数完全是自己修修改改独立完成的,感觉这段时间进步挺大的,满意!

牢记选择排序法的思想,排序子函数中,重新设一个指针变量p,将k的地址赋给p,是因为后面要把j的地址赋给p,而不能直接赋给k,因为k是外面的for循环的循环变量,不能随便赋值,会乱套!!

主函数中,在调用sort函数之前,一定要给p重新赋值为a(即a[0]),因为前面的输入循环,p已经指向a[9]的地址。

时间: 2024-10-29 19:06:30

指针选择排序法,10个整数从小到大排序的相关文章

将输入的十个整数从小到大排序

#include <iostream> using namespace std; int main() { int a[11]; int i,j,t; cout<<"请输入10个整数 : "<<endl; cout<<endl; for (i=1;i<11;i++) cin>>a[i]; cout<<endl; for (j=1;j<=9;j++) for (i=1;i<=10-j;i++) if

使用直接排序法对一维数组进行排序

实现效果: 实现原理: 实现代码: public int[] sory(int[] intArray) { for (int i = 0; i < intArray.Length;i++ ) { int j = i; int temp = intArray[i]; while((j>0)&&temp>(intArray[j-1])){ intArray[j] = intArray[j - 1]; j--; } intArray[j] = temp; } return in

用选择法对10个整数按从小到大排序(数组)

用选择法对10个整数按从小到大排序,要求使用数组. 算法思想: 第一次选择:从10个整数中挑出其中最小的整数,拿出来: 第二次选择:从余下的9个整数中挑出其中最小的整数,拿出来,放到上一次挑出的数的后面: 第三次选择:从余下的8个整数中挑出其中最小的整数,拿出来,放到上一次挑出的数的后面: ---- 以此类推,直到全部挑完. #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int

算法之旅 | 选择排序法

算法之旅 | 选择排序法 HTML5学堂-码匠:数据快速的计算与排序,与前端页面性能有直接的关系.由于排序的算法有很多,在本次"算法系列"的分享当中,我们先从简单易上手的选择排序法开始,其它的排序算法会随后陆续跟大家一起分享. 算法的基本概念 算法是什么,它有何作用 为解决一个问题而采取的方法和步骤,称为算法. 我们可以把算法看成一本"福字剪纸教程",其中每一种算法就是剪纸教程中的一种包含"固定步骤"的剪纸方法,使用者只要按照步骤进行剪纸,就可以

实例365(13)---------经典数组排序方法------选择排序法

一:使用选择排序法对一维数组进行排序,截图 /*选择排序的个人理解:第一遍筛选,选出其中最大的值,得到值和下标 将最大的值的位置和数组的第一个位置交换 从数组的第二个位置开始第二遍筛选 将其中最大的值的位置和数组的第二个位置交换 直到筛选完数组 */ 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; u

Openjudge-计算概论(A)-整数奇偶排序

描述: 输入10个整数,彼此以空格分隔重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列:2.然后输出其中的偶数,并按从小到大排列.输入任意排序的10个整数(0-100),彼此以空格分隔输出按照要求排序后输出,由空格分隔样例输入 4 7 3 13 11 12 0 47 34 98 样例输出 47 13 11 7 3 0 4 12 34 98 提示1. 测试数据可能有很多组,请使用while(cin>>a[0]>>a[1]>>...>&g

题目1117:整数奇偶排序 (2008年北京大学图形实验室计算机研究生机试真题)

题目描述: 输入10个整数,彼此以空格分隔.重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列:2.然后输出其中的偶数,并按从小到大排列. 输入: 任意排序的10个整数(0-100),彼此以空格分隔. 输出: 可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔. 样例输入: 4 7 3 13 11 12 0 47 34 98 样例输出: 47 13 11 7 3 0 4 12 34 98 提示: 1. 测试数据可能有很多组,请使用while(cin>>

2015年北京大学软件工程学科优秀大学生夏令营上机考试---B:整数奇偶排序

描述 给定10个整数的序列,要求对其重新排序.排序要求: 1.奇数在前,偶数在后: 2.奇数按从大到小排序: 3.偶数按从小到大排序. 输入 输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100. 输出 按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开. 样例输入 4 7 3 13 11 12 0 47 34 98 样例输出 47 13 11 7 3 0 4 12 34 98 题目简单,可以用数据结构的数组求解,也可以用链表求解,数组简

题目1117:整数奇偶排序

题目描述: 输入10个整数,彼此以空格分隔.重新排序以后输出(也按空格分隔),要求: 1.先输出其中的奇数,并按从大到小排列: 2.然后输出其中的偶数,并按从小到大排列. 输入: 任意排序的10个整数(0-100),彼此以空格分隔. 输出: 可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔. 样例输入: 4 7 3 13 11 12 0 47 34 98 样例输出: 47 13 11 7 3 0 4 12 34 98 提示: 1. 测试数据可能有很多组,请使用while(cin>