Java 1045 快速排序
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int N = Integer.parseInt(sc.nextLine());
String[] str = sc.nextLine().split(" ");
int 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 [] arr = new int[str.length];
for(int i = 0;i<str.length;i++){
arr[i] = Integer.parseInt(str[i]);
}
int count = 0;
boolean isFlag = true;
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0;i<arr.length;i++){
if(i == 0){
for(int j = 1;j<arr.length;j++){
if(arr[i] > arr[j]){
isFlag = false;
}
}
if(isFlag){
list.add(arr[i]);
count++;
}
}
if(i == arr.length-1){
for(int j = 0;j<arr.length-1;j++){
if(arr[i] < arr[j]){
isFlag = false;
}
}
if(isFlag){
list.add(arr[i]);
count++;
}
}
if(i != 0 && i != arr.length-1){
for(int j = 0;j<i;j++){
if(arr[i] < arr[j]){
isFlag = false;
}
}
for(int j = i+1;j<arr.length;j++){
if(arr[i] > arr[j]){
isFlag = false;
}
}
if(isFlag){
list.add(arr[i]);
count++;
}
}
isFlag = true;
}
Collections.sort(list);
System.out.println(count);
for(int i = 0;i<count-1;i++){
System.out.print(list.get(i) + " ");
}
System.out.print(list.get(count-1));
}
}
C++代码实现(AC):
============
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
int N;
scanf("%d",&N);
int num[N],num_s[N]; //一个原始数据,另一个保存已经排好的数据
for(int i=0;i<N;i++)
{
scanf("%d",&num[i]);
num_s[i]=num[i];
}
sort(num_s,num_s+N);
int count=0,max=0;
int res[N];
for(int i=0;i<N;i++)
{
评论