排序之 -- 反转排序

示意:

偶数:
初始数组资源 【10        20        30        40        50        60】

第一趟排序后    60     【20        30        40        50】     10
第二趟排序后    60        50     【30        40】     20        10
第三趟排序后    60        50        40        30        20        10

奇数:
初始数组资源 【10        20        30        23        40        50        60】

第一趟排序后    60     【20        30        23        40        50】     10
第二趟排序后    60        50     【30        23        40】     20        10
第三趟排序后    60        50        40        23        30        20        10

实例:

 1 /**
 2  * 反转排序算法实例
 3  *
 4  * @author Li Zhong Wei
 5  */
 6 public class ReverseSort {
 7     public static void main(String[] args) {
 8         // 创建一个数组
 9         int[] array = { 10, 20, 30, 40, 50, 60 };
10         // 创建反转排序类的对象
11         ReverseSort sorter = new ReverseSort();
12         // 调用排序对象的方法将数组反转
13         sorter.sort(array);
14     }
15
16     /**
17      *直接选择排序法
18      *
19      * @param array
20      *            要排序的数组
21      */
22     public void sort(int[] array) {
23         System.out.println("数组原有内容:");
24         showArray(array);// 输出排序前的数组值
25         int temp;
26         int len = array.length;
27         for (int i = 0; i < len / 2; i++) {
28             temp = array[i];
29             array[i] = array[len - 1 - i];
30             array[len - 1 - i] = temp;
31         }
32         System.out.println("数组反转后内容:");
33         showArray(array);// 输出排序后的数组值
34     }
35
36     /**
37      * 显示数组所有元素
38      *
39      * @param array
40      *            要显示的数组
41      */
42     public void showArray(int[] array) {
43         for (int i : array) {// foreach格式遍历数组
44             System.out.print("\t" + i);// 输出每个数组元素值
45         }
46         System.out.println();
47     }
48 }
时间: 2024-10-28 02:50:56

排序之 -- 反转排序的相关文章

10、直接选择排序和反转排序

package com.xxx.xxx; /** * 1.直接选择排序 * 2.反转排序 * @author Administrator * */ public class demo11 { //直接选择排序 /** * 直接选择排序比冒泡排序快一些 * 基本思想:将指定排序位置与其他数组元素分别对比,满足就交换 * (注意:这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换) * 与冒泡排序相比,直接选择排序的交换次数要少很多 */ public static voi

Java 的冒泡排序、直接选择排序和反转排序方法

冒泡排序: System.out.println(Arrays.toString(arr)); int temp = -1; for(int i=0;i<arr.length;i++) { for(int j=i+1;j<arr.length;j++) { if(arr[i]>arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } System.out.println(Arrays.toString(arr)); 直接

直接选择排序与反转排序

1 //直接选择排序 2 int[] array = { 63, 4, 24, 1, 3, 15 }; 3 int j; int t; 4 for(int i = 1; i < array.length; i++) 5 { 6 int n = 0; 7 for(j = 1; j <= array.length - i; j++) //当i等于5的时候还要有一次比较 8 { //若j<array.length,则内部少一次循环 9 if(array[j] > array[n]) 10

数据算法 --hadoop/spark数据处理技巧 --(3.左外连接 4.反转排序)

三. 左外连接 考虑一家公司,比如亚马逊,它拥有超过2亿的用户,每天要完成数亿次交易.假设我们有两类数据,用户和交易: users(user_id,location_id) transactions(transction_id,product_id,user_id,quantity,amout) 所谓左外连接:令T1(左表)和T2(右表)是以下两个关系(其中t1是T1的属性,t2是T2的属性): T1=(K,t1) T2=(K,t2) 关系T1,T2在连接键K上左外连接的结果将包含左表(T1)的

排序算法——希尔排序

希尔排序 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法. 该方法因DL.Shell于1959年提出而得名. 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序:随着增量逐渐减少,每组包含的关键词越来越多, 当增量减至1时,整个文件恰被分成一组,算法便终止. 代码实现 void shellsort(int a[],int n) { int gap=0,i=0,temp=0,j=0; for(

基数排序与桶排序,计数排序【详解】

桶排序简单入门篇^-^ 在我们生活的这个世界中到处都是被排序过的东东.站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在.现在我们举个具体的例子来介绍一下排序算法. 首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦.期末考试完了老师要将同学们的分数按照从高到低排序.小哼的班上只有5个同学,这5个同学分别考了5分.3分.5分.2分和8分,哎,考得真是惨不忍睹(满分是10分).接下来将分

C言语合并排序(兼并排序)算法及代码

合并排序也称兼并排序,其算法思惟是将待排序序列分为两局部,顺次对分得的两个局部再次运用合并排序,之后再对其停止兼并.仅从算法思惟上理解合并排序会认为很笼统,接下来就以对序列A[0], A[l]-, A[n-1]停止升序陈列来停止解说,在此采取自顶向下的完成办法,操作步调如下.(1)将所要停止的排序序列分为阁下两个局部,假如要停止排序的序列的肇端元素下标为first,最初一个元素的下标为last,那么阁下两局部之间的临界点下标mid=(first+last)/2,这两局部辨别是A[first -

ArcGIS10.1 属性值排序,图斑排序

ArcGIS10.1技术交流(第4期) 属性值排序,图斑排序 第一讲 介绍了arcgis10.1中的排序这一个工具,介绍了如何利用这一个工具对属性值进行排序,以及对图斑块进行一个空间排序,以及途中还介绍了一下目前网上一种比较普通方法来进行图斑排序的一个原理,再次粗略的引了一下皮亚诺曲线 点击学习 第二讲 为上一讲讲到的ArcGIs自带的排序工具的下承接(),介绍从提取图斑外接矩形的左上点坐标,导出至Excel,对得到的坐标值进行两个排序,得到一个排序值,但是重点呢,不是结果,而是告诉大家这种方法

C语言中的排序算法--冒泡排序,选择排序,希尔排序

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 维基百科:点击打开链接 [cpp] view plain copy /* 用选择法对10个数进行排序 */ #include<stdio.h> void main() { int i,j,